home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / CIncludes / QuickTimeComponents.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-12  |  163.6 KB  |  4,156 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        QuickTimeComponents.h
  3.  
  4.      Contains:    QuickTime interfaces
  5.  
  6.      Version:    Technology:    
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    (c) 1990-1999 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __QUICKTIMECOMPONENTS__
  18. #define __QUICKTIMECOMPONENTS__
  19.  
  20. #ifndef __MACTYPES__
  21.     #include <MacTypes.h>
  22. #endif
  23.  
  24. #ifndef __MIXEDMODE__
  25.     #include <MixedMode.h>
  26. #endif
  27.  
  28. #ifndef __COMPONENTS__
  29.     #include <Components.h>
  30. #endif
  31.  
  32. #ifndef __IMAGECOMPRESSION__
  33.     #include <ImageCompression.h>
  34. #endif
  35.  
  36. #ifndef __MOVIES__
  37.     #include <Movies.h>
  38. #endif
  39.  
  40. #ifndef __QUICKDRAW__
  41.     #include <Quickdraw.h>
  42. #endif
  43.  
  44. #ifndef __VIDEO__
  45.     #include <Video.h>
  46. #endif
  47.  
  48. #ifndef __SOUND__
  49.     #include <Sound.h>
  50. #endif
  51.  
  52. #ifndef __QUICKTIMEMUSIC__
  53.     #include <QuickTimeMusic.h>
  54. #endif
  55.  
  56.  
  57.  
  58.  
  59. #if PRAGMA_ONCE
  60. #pragma once
  61. #endif
  62.  
  63. #ifdef __cplusplus
  64. extern "C" {
  65. #endif
  66.  
  67. #if PRAGMA_IMPORT
  68. #pragma import on
  69. #endif
  70.  
  71. #if PRAGMA_STRUCT_ALIGN
  72.     #pragma options align=mac68k
  73. #elif PRAGMA_STRUCT_PACKPUSH
  74.     #pragma pack(push, 2)
  75. #elif PRAGMA_STRUCT_PACK
  76.     #pragma pack(2)
  77. #endif
  78.  
  79. enum {
  80.     clockComponentType            = FOUR_CHAR_CODE('clok'),
  81.     systemTickClock                = FOUR_CHAR_CODE('tick'),        /* subtype: 60ths since boot        */
  82.     systemSecondClock            = FOUR_CHAR_CODE('seco'),        /* subtype: seconds since 1904        */
  83.     systemMillisecondClock        = FOUR_CHAR_CODE('mill'),        /* subtype: 1000ths since boot        */
  84.     systemMicrosecondClock        = FOUR_CHAR_CODE('micr')        /* subtype: 1000000ths since boot    */
  85. };
  86.  
  87. enum {
  88.     kClockRateIsLinear            = 1,
  89.     kClockImplementsCallBacks    = 2,
  90.     kClockCanHandleIntermittentSound = 4                        /* sound clocks only */
  91. };
  92.  
  93. #if OLDROUTINENAMES
  94. #define GetClockTime(aClock, out) ClockGetTime(aClock, out)
  95. #endif
  96. /** These are Clock procedures **/
  97. EXTERN_API( ComponentResult )
  98. ClockGetTime                    (ComponentInstance         aClock,
  99.                                  TimeRecord *            out)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A);
  100.  
  101.  
  102. EXTERN_API( QTCallBack )
  103. ClockNewCallBack                (ComponentInstance         aClock,
  104.                                  TimeBase                 tb,
  105.                                  short                     callBackType)                        FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A);
  106.  
  107. EXTERN_API( ComponentResult )
  108. ClockDisposeCallBack            (ComponentInstance         aClock,
  109.                                  QTCallBack             cb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  110.  
  111. EXTERN_API( ComponentResult )
  112. ClockCallMeWhen                    (ComponentInstance         aClock,
  113.                                  QTCallBack             cb,
  114.                                  long                     param1,
  115.                                  long                     param2,
  116.                                  long                     param3)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0004, 0x7000, 0xA82A);
  117.  
  118. EXTERN_API( ComponentResult )
  119. ClockCancelCallBack                (ComponentInstance         aClock,
  120.                                  QTCallBack             cb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A);
  121.  
  122. EXTERN_API( ComponentResult )
  123. ClockRateChanged                (ComponentInstance         aClock,
  124.                                  QTCallBack             cb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A);
  125.  
  126. EXTERN_API( ComponentResult )
  127. ClockTimeChanged                (ComponentInstance         aClock,
  128.                                  QTCallBack             cb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  129.  
  130. EXTERN_API( ComponentResult )
  131. ClockSetTimeBase                (ComponentInstance         aClock,
  132.                                  TimeBase                 tb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
  133.  
  134. EXTERN_API( ComponentResult )
  135. ClockStartStopChanged            (ComponentInstance         aClock,
  136.                                  QTCallBack             cb,
  137.                                  Boolean                 startChanged,
  138.                                  Boolean                 stopChanged)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A);
  139.  
  140. EXTERN_API( ComponentResult )
  141. ClockGetRate                    (ComponentInstance         aClock,
  142.                                  Fixed *                rate)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A);
  143.  
  144.  
  145.  
  146.  
  147. enum {
  148.     StandardCompressionType        = FOUR_CHAR_CODE('scdi'),
  149.     StandardCompressionSubType    = FOUR_CHAR_CODE('imag'),
  150.     StandardCompressionSubTypeSound = FOUR_CHAR_CODE('soun')
  151. };
  152.  
  153.  
  154. typedef CALLBACK_API( Boolean , SCModalFilterProcPtr )(DialogPtr theDialog, EventRecord *theEvent, short *itemHit, long refcon);
  155. typedef CALLBACK_API( short , SCModalHookProcPtr )(DialogPtr theDialog, short itemHit, void *params, long refcon);
  156. typedef STACK_UPP_TYPE(SCModalFilterProcPtr)                     SCModalFilterUPP;
  157. typedef STACK_UPP_TYPE(SCModalHookProcPtr)                         SCModalHookUPP;
  158. /*    Preference flags.*/
  159. enum {
  160.     scListEveryCodec            = 1L << 1,
  161.     scAllowZeroFrameRate        = 1L << 2,
  162.     scAllowZeroKeyFrameRate        = 1L << 3,
  163.     scShowBestDepth                = 1L << 4,
  164.     scUseMovableModal            = 1L << 5,
  165.     scDisableFrameRateItem        = 1L << 6
  166. };
  167.  
  168.  
  169. /*    Possible test flags for setting test image.*/
  170. enum {
  171.     scPreferCropping            = 1 << 0,
  172.     scPreferScaling                = 1 << 1,
  173.     scPreferScalingAndCropping    = scPreferScaling | scPreferCropping,
  174.     scDontDetermineSettingsFromTestImage = 1 << 2
  175. };
  176.  
  177.  
  178. /*    Dimensions of the image preview box.*/
  179. enum {
  180.     scTestImageWidth            = 80,
  181.     scTestImageHeight            = 80
  182. };
  183.  
  184. /*    Possible items returned by hookProc.*/
  185. enum {
  186.     scOKItem                    = 1,
  187.     scCancelItem                = 2,
  188.     scCustomItem                = 3
  189. };
  190.  
  191. /*    Result returned when user cancelled.*/
  192. enum {
  193.     scUserCancelled                = 1
  194. };
  195.  
  196.  
  197.  
  198. /* Component selectors*/
  199. enum {
  200.     scPositionRect                = 2,
  201.     scPositionDialog            = 3,
  202.     scSetTestImagePictHandle    = 4,
  203.     scSetTestImagePictFile        = 5,
  204.     scSetTestImagePixMap        = 6,
  205.     scGetBestDeviceRect            = 7,
  206.     scRequestImageSettings        = 10,
  207.     scCompressImage                = 11,
  208.     scCompressPicture            = 12,
  209.     scCompressPictureFile        = 13,
  210.     scRequestSequenceSettings    = 14,
  211.     scCompressSequenceBegin        = 15,
  212.     scCompressSequenceFrame        = 16,
  213.     scCompressSequenceEnd        = 17,
  214.     scDefaultPictHandleSettings    = 18,
  215.     scDefaultPictFileSettings    = 19,
  216.     scDefaultPixMapSettings        = 20,
  217.     scGetInfo                    = 21,
  218.     scSetInfo                    = 22,
  219.     scNewGWorld                    = 23
  220. };
  221.  
  222. /*    Get/SetInfo structures.*/
  223.  
  224.  
  225. struct SCSpatialSettings {
  226.     CodecType                         codecType;
  227.     CodecComponent                     codec;
  228.     short                             depth;
  229.     CodecQ                             spatialQuality;
  230. };
  231. typedef struct SCSpatialSettings        SCSpatialSettings;
  232.  
  233. struct SCTemporalSettings {
  234.     CodecQ                             temporalQuality;
  235.     Fixed                             frameRate;
  236.     long                             keyFrameRate;
  237. };
  238. typedef struct SCTemporalSettings        SCTemporalSettings;
  239.  
  240. struct SCDataRateSettings {
  241.     long                             dataRate;
  242.     long                             frameDuration;
  243.     CodecQ                             minSpatialQuality;
  244.     CodecQ                             minTemporalQuality;
  245. };
  246. typedef struct SCDataRateSettings        SCDataRateSettings;
  247.  
  248. struct SCExtendedProcs {
  249.     SCModalFilterUPP                 filterProc;
  250.     SCModalHookUPP                     hookProc;
  251.     long                             refcon;
  252.     Str31                             customName;
  253. };
  254. typedef struct SCExtendedProcs            SCExtendedProcs;
  255. /*    Get/SetInfo selectors*/
  256. enum {
  257.     scSpatialSettingsType        = FOUR_CHAR_CODE('sptl'),        /* pointer to SCSpatialSettings struct*/
  258.     scTemporalSettingsType        = FOUR_CHAR_CODE('tprl'),        /* pointer to SCTemporalSettings struct*/
  259.     scDataRateSettingsType        = FOUR_CHAR_CODE('drat'),        /* pointer to SCDataRateSettings struct*/
  260.     scColorTableType            = FOUR_CHAR_CODE('clut'),        /* pointer to CTabHandle*/
  261.     scProgressProcType            = FOUR_CHAR_CODE('prog'),        /* pointer to ProgressRecord struct*/
  262.     scExtendedProcsType            = FOUR_CHAR_CODE('xprc'),        /* pointer to SCExtendedProcs struct*/
  263.     scPreferenceFlagsType        = FOUR_CHAR_CODE('pref'),        /* pointer to long*/
  264.     scSettingsStateType            = FOUR_CHAR_CODE('ssta'),        /* pointer to Handle*/
  265.     scSequenceIDType            = FOUR_CHAR_CODE('sequ'),        /* pointer to ImageSequence*/
  266.     scWindowPositionType        = FOUR_CHAR_CODE('wndw'),        /* pointer to Point*/
  267.     scCodecFlagsType            = FOUR_CHAR_CODE('cflg'),        /* pointer to CodecFlags*/
  268.     scCodecSettingsType            = FOUR_CHAR_CODE('cdec'),        /* pointer to Handle*/
  269.     scForceKeyValueType            = FOUR_CHAR_CODE('ksim'),        /* pointer to long*/
  270.     scSoundSampleRateType        = FOUR_CHAR_CODE('ssrt'),        /* pointer to UnsignedFixed*/
  271.     scSoundSampleSizeType        = FOUR_CHAR_CODE('ssss'),        /* pointer to short*/
  272.     scSoundChannelCountType        = FOUR_CHAR_CODE('sscc'),        /* pointer to short*/
  273.     scSoundCompressionType        = FOUR_CHAR_CODE('ssct'),        /* pointer to OSType*/
  274.     scCompressionListType        = FOUR_CHAR_CODE('ctyl')        /* pointer to OSType Handle*/
  275. };
  276.  
  277. /*    scTypeNotFoundErr returned by Get/SetInfo when type cannot be found.*/
  278.  
  279.  
  280.  
  281. struct SCParams {
  282.     long                             flags;
  283.     CodecType                         theCodecType;
  284.     CodecComponent                     theCodec;
  285.     CodecQ                             spatialQuality;
  286.     CodecQ                             temporalQuality;
  287.     short                             depth;
  288.     Fixed                             frameRate;
  289.     long                             keyFrameRate;
  290.     long                             reserved1;
  291.     long                             reserved2;
  292. };
  293. typedef struct SCParams                    SCParams;
  294. enum {
  295.     scGetCompression            = 1,
  296.     scShowMotionSettings        = 1L << 0,
  297.     scSettingsChangedItem        = -1
  298. };
  299.  
  300. enum {
  301.     scCompressFlagIgnoreIdenticalFrames = 1
  302. };
  303.  
  304. /* QTAtomTypes for atoms found in settings atom containers*/
  305. enum {
  306.     kQTSettingsVideo            = FOUR_CHAR_CODE('vide'),        /* Container for video/image compression related atoms (Get/SetInfo selectors)*/
  307.     kQTSettingsSound            = FOUR_CHAR_CODE('soun'),        /* Container for sound compression related atoms (Get/SetInfo selectors)*/
  308.     kQTSettingsComponentVersion    = FOUR_CHAR_CODE('vers')        /* . Version of component that wrote settings (QTSettingsVersionAtomRecord)*/
  309. };
  310.  
  311. /* Format of 'vers' atom found in settings atom containers*/
  312.  
  313. struct QTSettingsVersionAtomRecord {
  314.     long                             componentVersion;            /* standard compression component version*/
  315.     short                             flags;                        /* low bit is 1 if little endian platform, 0 if big endian platform*/
  316.     short                             reserved;                    /* should be 0*/
  317. };
  318. typedef struct QTSettingsVersionAtomRecord QTSettingsVersionAtomRecord;
  319. #define SCGetCompression(ci, params, where) SCGetCompressionExtended(ci,params,where,0,0,0,0)
  320. /** These are Progress procedures **/
  321. EXTERN_API( ComponentResult )
  322. SCGetCompressionExtended        (ComponentInstance         ci,
  323.                                  SCParams *                params,
  324.                                  Point                     where,
  325.                                  SCModalFilterUPP         filterProc,
  326.                                  SCModalHookUPP         hookProc,
  327.                                  long                     refcon,
  328.                                  StringPtr                 customName)                            FIVEWORDINLINE(0x2F3C, 0x0018, 0x0001, 0x7000, 0xA82A);
  329.  
  330. EXTERN_API( ComponentResult )
  331. SCPositionRect                    (ComponentInstance         ci,
  332.                                  Rect *                    rp,
  333.                                  Point *                where)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A);
  334.  
  335. EXTERN_API( ComponentResult )
  336. SCPositionDialog                (ComponentInstance         ci,
  337.                                  short                     id,
  338.                                  Point *                where)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x0003, 0x7000, 0xA82A);
  339.  
  340. EXTERN_API( ComponentResult )
  341. SCSetTestImagePictHandle        (ComponentInstance         ci,
  342.                                  PicHandle                 testPict,
  343.                                  Rect *                    testRect,
  344.                                  short                     testFlags)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x0004, 0x7000, 0xA82A);
  345.  
  346. EXTERN_API( ComponentResult )
  347. SCSetTestImagePictFile            (ComponentInstance         ci,
  348.                                  short                     testFileRef,
  349.                                  Rect *                    testRect,
  350.                                  short                     testFlags)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A);
  351.  
  352. EXTERN_API( ComponentResult )
  353. SCSetTestImagePixMap            (ComponentInstance         ci,
  354.                                  PixMapHandle             testPixMap,
  355.                                  Rect *                    testRect,
  356.                                  short                     testFlags)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x0006, 0x7000, 0xA82A);
  357.  
  358. EXTERN_API( ComponentResult )
  359. SCGetBestDeviceRect                (ComponentInstance         ci,
  360.                                  Rect *                    r)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  361.  
  362.  
  363. EXTERN_API( ComponentResult )
  364. SCRequestImageSettings            (ComponentInstance         ci)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000A, 0x7000, 0xA82A);
  365.  
  366. EXTERN_API( ComponentResult )
  367. SCCompressImage                    (ComponentInstance         ci,
  368.                                  PixMapHandle             src,
  369.                                  const Rect *            srcRect,
  370.                                  ImageDescriptionHandle * desc,
  371.                                  Handle *                data)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x000B, 0x7000, 0xA82A);
  372.  
  373. EXTERN_API( ComponentResult )
  374. SCCompressPicture                (ComponentInstance         ci,
  375.                                  PicHandle                 srcPicture,
  376.                                  PicHandle                 dstPicture)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A);
  377.  
  378. EXTERN_API( ComponentResult )
  379. SCCompressPictureFile            (ComponentInstance         ci,
  380.                                  short                     srcRefNum,
  381.                                  short                     dstRefNum)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  382.  
  383. EXTERN_API( ComponentResult )
  384. SCRequestSequenceSettings        (ComponentInstance         ci)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000E, 0x7000, 0xA82A);
  385.  
  386. EXTERN_API( ComponentResult )
  387. SCCompressSequenceBegin            (ComponentInstance         ci,
  388.                                  PixMapHandle             src,
  389.                                  const Rect *            srcRect,
  390.                                  ImageDescriptionHandle * desc)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x000F, 0x7000, 0xA82A);
  391.  
  392. EXTERN_API( ComponentResult )
  393. SCCompressSequenceFrame            (ComponentInstance         ci,
  394.                                  PixMapHandle             src,
  395.                                  const Rect *            srcRect,
  396.                                  Handle *                data,
  397.                                  long *                    dataSize,
  398.                                  short *                notSyncFlag)                        FIVEWORDINLINE(0x2F3C, 0x0014, 0x0010, 0x7000, 0xA82A);
  399.  
  400. EXTERN_API( ComponentResult )
  401. SCCompressSequenceEnd            (ComponentInstance         ci)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0011, 0x7000, 0xA82A);
  402.  
  403. EXTERN_API( ComponentResult )
  404. SCDefaultPictHandleSettings        (ComponentInstance         ci,
  405.                                  PicHandle                 srcPicture,
  406.                                  short                     motion)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x0012, 0x7000, 0xA82A);
  407.  
  408. EXTERN_API( ComponentResult )
  409. SCDefaultPictFileSettings        (ComponentInstance         ci,
  410.                                  short                     srcRef,
  411.                                  short                     motion)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  412.  
  413. EXTERN_API( ComponentResult )
  414. SCDefaultPixMapSettings            (ComponentInstance         ci,
  415.                                  PixMapHandle             src,
  416.                                  short                     motion)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x0014, 0x7000, 0xA82A);
  417.  
  418. EXTERN_API( ComponentResult )
  419. SCGetInfo                        (ComponentInstance         ci,
  420.                                  OSType                 infoType,
  421.                                  void *                    info)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0015, 0x7000, 0xA82A);
  422.  
  423. EXTERN_API( ComponentResult )
  424. SCSetInfo                        (ComponentInstance         ci,
  425.                                  OSType                 infoType,
  426.                                  void *                    info)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
  427.  
  428. EXTERN_API( ComponentResult )
  429. SCNewGWorld                        (ComponentInstance         ci,
  430.                                  GWorldPtr *            gwp,
  431.                                  Rect *                    rp,
  432.                                  GWorldFlags             flags)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0017, 0x7000, 0xA82A);
  433.  
  434. EXTERN_API( ComponentResult )
  435. SCSetCompressFlags                (ComponentInstance         ci,
  436.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  437.  
  438. EXTERN_API( ComponentResult )
  439. SCGetCompressFlags                (ComponentInstance         ci,
  440.                                  long *                    flags)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  441.  
  442. EXTERN_API( ComponentResult )
  443. SCGetSettingsAsText                (ComponentInstance         ci,
  444.                                  Handle *                text)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  445.  
  446. EXTERN_API( ComponentResult )
  447. SCGetSettingsAsAtomContainer    (ComponentInstance         ci,
  448.                                  QTAtomContainer *        settings)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  449.  
  450. EXTERN_API( ComponentResult )
  451. SCSetSettingsFromAtomContainer    (ComponentInstance         ci,
  452.                                  QTAtomContainer         settings)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A);
  453.  
  454.  
  455.  
  456.  
  457. enum {
  458.     TweenComponentType            = FOUR_CHAR_CODE('twen')
  459. };
  460.  
  461.  
  462. typedef ComponentInstance                 TweenerComponent;
  463. EXTERN_API( ComponentResult )
  464. TweenerInitialize                (TweenerComponent         tc,
  465.                                  QTAtomContainer         container,
  466.                                  QTAtom                 tweenAtom,
  467.                                  QTAtom                 dataAtom)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0001, 0x7000, 0xA82A);
  468.  
  469. EXTERN_API( ComponentResult )
  470. TweenerDoTween                    (TweenerComponent         tc,
  471.                                  TweenRecord *            tr)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0002, 0x7000, 0xA82A);
  472.  
  473. EXTERN_API( ComponentResult )
  474. TweenerReset                    (TweenerComponent         tc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0003, 0x7000, 0xA82A);
  475.  
  476.  
  477.  
  478. enum {
  479.     TCSourceRefNameType            = FOUR_CHAR_CODE('name')
  480. };
  481.  
  482. enum {
  483.     tcDropFrame                    = 1 << 0,
  484.     tc24HourMax                    = 1 << 1,
  485.     tcNegTimesOK                = 1 << 2,
  486.     tcCounter                    = 1 << 3
  487. };
  488.  
  489.  
  490. struct TimeCodeDef {
  491.     long                             flags;                        /* drop-frame, etc.*/
  492.     TimeScale                         fTimeScale;                    /* time scale of frameDuration (eg. 2997)*/
  493.     TimeValue                         frameDuration;                /* duration of each frame (eg. 100)*/
  494.     UInt8                             numFrames;                    /* frames/sec for timecode (eg. 30) OR frames/tick for counter mode*/
  495.     UInt8                             padding;                    /* unused padding byte*/
  496. };
  497. typedef struct TimeCodeDef                TimeCodeDef;
  498. enum {
  499.     tctNegFlag                    = 0x80                            /* negative bit is in minutes*/
  500. };
  501.  
  502.  
  503. struct TimeCodeTime {
  504.     UInt8                             hours;
  505.     UInt8                             minutes;
  506.     UInt8                             seconds;
  507.     UInt8                             frames;
  508. };
  509. typedef struct TimeCodeTime                TimeCodeTime;
  510.  
  511. struct TimeCodeCounter {
  512.     long                             counter;
  513. };
  514. typedef struct TimeCodeCounter            TimeCodeCounter;
  515.  
  516. union TimeCodeRecord {
  517.     TimeCodeTime                     t;
  518.     TimeCodeCounter                 c;
  519. };
  520. typedef union TimeCodeRecord            TimeCodeRecord;
  521.  
  522. struct TimeCodeDescription {
  523.     long                             descSize;                    /* standard sample description header*/
  524.     long                             dataFormat;
  525.     long                             resvd1;
  526.     short                             resvd2;
  527.     short                             dataRefIndex;
  528.     long                             flags;                        /* timecode specific stuff*/
  529.     TimeCodeDef                     timeCodeDef;
  530.     long                             srcRef[1];
  531. };
  532. typedef struct TimeCodeDescription        TimeCodeDescription;
  533. typedef TimeCodeDescription *            TimeCodeDescriptionPtr;
  534. typedef TimeCodeDescriptionPtr *        TimeCodeDescriptionHandle;
  535. enum {
  536.     tcdfShowTimeCode            = 1 << 0
  537. };
  538.  
  539.  
  540.  
  541. struct TCTextOptions {
  542.     short                             txFont;
  543.     short                             txFace;
  544.     short                             txSize;
  545.     short                             pad;                        /* let's make it longword aligned - thanks.. */
  546.     RGBColor                         foreColor;
  547.     RGBColor                         backColor;
  548. };
  549. typedef struct TCTextOptions            TCTextOptions;
  550. typedef TCTextOptions *                    TCTextOptionsPtr;
  551. EXTERN_API( HandlerError )
  552. TCGetCurrentTimeCode            (MediaHandler             mh,
  553.                                  long *                    frameNum,
  554.                                  TimeCodeDef *            tcdef,
  555.                                  TimeCodeRecord *        tcrec,
  556.                                  UserData *                srcRefH)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x0101, 0x7000, 0xA82A);
  557.  
  558. EXTERN_API( HandlerError )
  559. TCGetTimeCodeAtTime                (MediaHandler             mh,
  560.                                  TimeValue                 mediaTime,
  561.                                  long *                    frameNum,
  562.                                  TimeCodeDef *            tcdef,
  563.                                  TimeCodeRecord *        tcdata,
  564.                                  UserData *                srcRefH)                            FIVEWORDINLINE(0x2F3C, 0x0014, 0x0102, 0x7000, 0xA82A);
  565.  
  566. EXTERN_API( HandlerError )
  567. TCTimeCodeToString                (MediaHandler             mh,
  568.                                  TimeCodeDef *            tcdef,
  569.                                  TimeCodeRecord *        tcrec,
  570.                                  StringPtr                 tcStr)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A);
  571.  
  572. EXTERN_API( HandlerError )
  573. TCTimeCodeToFrameNumber            (MediaHandler             mh,
  574.                                  TimeCodeDef *            tcdef,
  575.                                  TimeCodeRecord *        tcrec,
  576.                                  long *                    frameNumber)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0104, 0x7000, 0xA82A);
  577.  
  578. EXTERN_API( HandlerError )
  579. TCFrameNumberToTimeCode            (MediaHandler             mh,
  580.                                  long                     frameNumber,
  581.                                  TimeCodeDef *            tcdef,
  582.                                  TimeCodeRecord *        tcrec)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0105, 0x7000, 0xA82A);
  583.  
  584. EXTERN_API( HandlerError )
  585. TCGetSourceRef                    (MediaHandler             mh,
  586.                                  TimeCodeDescriptionHandle  tcdH,
  587.                                  UserData *                srefH)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0106, 0x7000, 0xA82A);
  588.  
  589. EXTERN_API( HandlerError )
  590. TCSetSourceRef                    (MediaHandler             mh,
  591.                                  TimeCodeDescriptionHandle  tcdH,
  592.                                  UserData                 srefH)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  593.  
  594. EXTERN_API( HandlerError )
  595. TCSetTimeCodeFlags                (MediaHandler             mh,
  596.                                  long                     flags,
  597.                                  long                     flagsMask)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0108, 0x7000, 0xA82A);
  598.  
  599. EXTERN_API( HandlerError )
  600. TCGetTimeCodeFlags                (MediaHandler             mh,
  601.                                  long *                    flags)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0109, 0x7000, 0xA82A);
  602.  
  603. EXTERN_API( HandlerError )
  604. TCSetDisplayOptions                (MediaHandler             mh,
  605.                                  TCTextOptionsPtr         textOptions)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  606.  
  607. EXTERN_API( HandlerError )
  608. TCGetDisplayOptions                (MediaHandler             mh,
  609.                                  TCTextOptionsPtr         textOptions)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x010B, 0x7000, 0xA82A);
  610.  
  611.  
  612.  
  613.  
  614. typedef ComponentInstance                 MovieImportComponent;
  615. typedef ComponentInstance                 MovieExportComponent;
  616. enum {
  617.     MovieImportType                = FOUR_CHAR_CODE('eat '),
  618.     MovieExportType                = FOUR_CHAR_CODE('spit')
  619. };
  620.  
  621. enum {
  622.     canMovieImportHandles        = 1 << 0,
  623.     canMovieImportFiles            = 1 << 1,
  624.     hasMovieImportUserInterface    = 1 << 2,
  625.     canMovieExportHandles        = 1 << 3,
  626.     canMovieExportFiles            = 1 << 4,
  627.     hasMovieExportUserInterface    = 1 << 5,
  628.     dontAutoFileMovieImport        = 1 << 6,
  629.     canMovieExportAuxDataHandle    = 1 << 7,
  630.     canMovieImportValidateHandles = 1 << 8,
  631.     canMovieImportValidateFile    = 1 << 9,
  632.     dontRegisterWithEasyOpen    = 1 << 10,
  633.     canMovieImportInPlace        = 1 << 11,
  634.     movieImportSubTypeIsFileExtension = 1 << 12,
  635.     canMovieImportPartial        = 1 << 13,
  636.     hasMovieImportMIMEList        = 1 << 14,
  637.     canMovieExportFromProcedures = 1 << 15,
  638.     canMovieExportValidateMovie    = 1L << 16,
  639.     movieExportNeedsResourceFork = 1L << 17,
  640.     canMovieImportDataReferences = 1L << 18,
  641.     movieExportMustGetSourceMediaType = 1L << 19,
  642.     canMovieImportWithIdle        = 1L << 20,
  643.     canMovieImportValidateDataReferences = 1L << 21,
  644.     reservedForUseByGraphicsImporters = 1L << 23
  645. };
  646.  
  647. enum {
  648.     movieImportCreateTrack        = 1,
  649.     movieImportInParallel        = 2,
  650.     movieImportMustUseTrack        = 4,
  651.     movieImportWithIdle            = 16
  652. };
  653.  
  654. enum {
  655.     movieImportResultUsedMultipleTracks = 8,
  656.     movieImportResultNeedIdles    = 32,
  657.     movieImportResultComplete    = 64
  658. };
  659.  
  660. enum {
  661.     kMovieExportTextOnly        = 0,
  662.     kMovieExportAbsoluteTime    = 1,
  663.     kMovieExportRelativeTime    = 2
  664. };
  665.  
  666. enum {
  667.     kMIDIImportSilenceBefore    = 1 << 0,
  668.     kMIDIImportSilenceAfter        = 1 << 1,
  669.     kMIDIImport20Playable        = 1 << 2,
  670.     kMIDIImportWantLyrics        = 1 << 3
  671. };
  672.  
  673. enum {
  674.     kMimeInfoMimeTypeTag        = FOUR_CHAR_CODE('mime'),
  675.     kMimeInfoFileExtensionTag    = FOUR_CHAR_CODE('ext '),
  676.     kMimeInfoDescriptionTag        = FOUR_CHAR_CODE('desc'),
  677.     kMimeInfoGroupTag            = FOUR_CHAR_CODE('grop'),
  678.     kMimeInfoDoNotOverrideExistingFileTypeAssociation = FOUR_CHAR_CODE('nofa')
  679. };
  680.  
  681. enum {
  682.     kQTFileTypeAIFF                = FOUR_CHAR_CODE('AIFF'),
  683.     kQTFileTypeAIFC                = FOUR_CHAR_CODE('AIFC'),
  684.     kQTFileTypeDVC                = FOUR_CHAR_CODE('dvc!'),
  685.     kQTFileTypeMIDI                = FOUR_CHAR_CODE('Midi'),
  686.     kQTFileTypePicture            = FOUR_CHAR_CODE('PICT'),
  687.     kQTFileTypeMovie            = FOUR_CHAR_CODE('MooV'),
  688.     kQTFileTypeText                = FOUR_CHAR_CODE('TEXT'),
  689.     kQTFileTypeWave                = FOUR_CHAR_CODE('WAVE'),
  690.     kQTFileTypeSystemSevenSound    = FOUR_CHAR_CODE('sfil'),
  691.     kQTFileTypeMuLaw            = FOUR_CHAR_CODE('ULAW'),
  692.     kQTFileTypeAVI                = FOUR_CHAR_CODE('VfW '),
  693.     kQTFileTypeSoundDesignerII    = FOUR_CHAR_CODE('Sd2f'),
  694.     kQTFileTypeAudioCDTrack        = FOUR_CHAR_CODE('trak'),
  695.     kQTFileTypePICS                = FOUR_CHAR_CODE('PICS'),
  696.     kQTFileTypeGIF                = FOUR_CHAR_CODE('GIFf'),
  697.     kQTFileTypePNG                = FOUR_CHAR_CODE('PNGf'),
  698.     kQTFileTypeTIFF                = FOUR_CHAR_CODE('TIFF'),
  699.     kQTFileTypePhotoShop        = FOUR_CHAR_CODE('8BPS'),
  700.     kQTFileTypeSGIImage            = FOUR_CHAR_CODE('.SGI'),
  701.     kQTFileTypeBMP                = FOUR_CHAR_CODE('BMPf'),
  702.     kQTFileTypeJPEG                = FOUR_CHAR_CODE('JPEG'),
  703.     kQTFileTypeJFIF                = FOUR_CHAR_CODE('JPEG'),
  704.     kQTFileTypeMacPaint            = FOUR_CHAR_CODE('PNTG'),
  705.     kQTFileTypeTargaImage        = FOUR_CHAR_CODE('TPIC'),
  706.     kQTFileTypeQuickDrawGXPicture = FOUR_CHAR_CODE('qdgx'),
  707.     kQTFileTypeQuickTimeImage    = FOUR_CHAR_CODE('qtif'),
  708.     kQTFileType3DMF                = FOUR_CHAR_CODE('3DMF'),
  709.     kQTFileTypeFLC                = FOUR_CHAR_CODE('FLC '),
  710.     kQTFileTypeFlash            = FOUR_CHAR_CODE('SWFL'),
  711.     kQTFileTypeFlashPix            = FOUR_CHAR_CODE('FPix')
  712. };
  713.  
  714. /* QTAtomTypes for atoms in import/export settings containers*/
  715. enum {
  716.     kQTSettingsDVExportNTSC        = FOUR_CHAR_CODE('dvcv'),        /* True is export as NTSC, false is export as PAL. (Boolean)*/
  717.     kQTSettingsDVExportLockedAudio = FOUR_CHAR_CODE('lock'),    /* True if audio locked to video. (Boolean)*/
  718.     kQTSettingsEffect            = FOUR_CHAR_CODE('effe'),        /* Parent atom whose contents are atoms of an effects description*/
  719.     kQTSettingsGraphicsFileImportSequence = FOUR_CHAR_CODE('sequ'), /* Parent atom of graphic file movie import component*/
  720.     kQTSettingsGraphicsFileImportSequenceEnabled = FOUR_CHAR_CODE('enab'), /* . If true, import numbered image sequence (Boolean)*/
  721.     kQTSettingsMovieExportEnableVideo = FOUR_CHAR_CODE('envi'),    /* Enable exporting of video track (Boolean)*/
  722.     kQTSettingsMovieExportEnableSound = FOUR_CHAR_CODE('enso'),    /* Enable exporting of sound track (Boolean)*/
  723.     kQTSettingsMovieExportSaveOptions = FOUR_CHAR_CODE('save'),    /* Parent atom of save options*/
  724.     kQTSettingsMovieExportSaveForInternet = FOUR_CHAR_CODE('fast'), /* . Save for Internet*/
  725.     kQTSettingsMovieExportSaveCompressedMovie = FOUR_CHAR_CODE('cmpm'), /* . Save compressed movie resource*/
  726.     kQTSettingsMIDI                = FOUR_CHAR_CODE('MIDI'),        /* MIDI import related container*/
  727.     kQTSettingsMIDISettingFlags    = FOUR_CHAR_CODE('sttg'),        /* . MIDI import settings    (UInt32)*/
  728.     kQTSettingsText                = FOUR_CHAR_CODE('text'),        /* Text related container*/
  729.     kQTSettingsTextDescription    = FOUR_CHAR_CODE('desc'),        /* . Text import settings (TextDescription record)*/
  730.     kQTSettingsTextSize            = FOUR_CHAR_CODE('size'),        /* . Width/height to create during import (FixedPoint)*/
  731.     kQTSettingsTextSettingFlags    = FOUR_CHAR_CODE('sttg'),        /* . Text export settings (UInt32)*/
  732.     kQTSettingsTextTimeFraction    = FOUR_CHAR_CODE('timf'),        /* . Movie time fraction for export (UInt32)*/
  733.     kQTSettingsTime                = FOUR_CHAR_CODE('time'),        /* Time related container*/
  734.     kQTSettingsTimeDuration        = FOUR_CHAR_CODE('dura'),        /* . Time related container*/
  735.     kQTSettingsAudioCDTrack        = FOUR_CHAR_CODE('trak'),        /* Audio CD track related container*/
  736.     kQTSettingsAudioCDTrackRateShift = FOUR_CHAR_CODE('rshf')    /* . Rate shift to be performed (SInt16)*/
  737. };
  738.  
  739.  
  740.  
  741.  
  742.  
  743. struct MovieExportGetDataParams {
  744.     long                             recordSize;
  745.  
  746.     long                             trackID;
  747.  
  748.     TimeScale                         sourceTimeScale;
  749.     TimeValue                         requestedTime;
  750.     TimeValue                         actualTime;
  751.  
  752.     Ptr                             dataPtr;
  753.     long                             dataSize;
  754.  
  755.     SampleDescriptionHandle         desc;
  756.     OSType                             descType;
  757.     long                             descSeed;
  758.  
  759.     long                             requestedSampleCount;
  760.     long                             actualSampleCount;
  761.     TimeValue                         durationPerSample;
  762.     long                             sampleFlags;
  763. };
  764. typedef struct MovieExportGetDataParams    MovieExportGetDataParams;
  765. typedef CALLBACK_API( OSErr , MovieExportGetDataProcPtr )(void *refCon, MovieExportGetDataParams *params);
  766. typedef CALLBACK_API( OSErr , MovieExportGetPropertyProcPtr )(void *refcon, long trackID, OSType propertyType, void *propertyValue);
  767. enum {
  768.     kQTPresetsListResourceType    = FOUR_CHAR_CODE('stg#'),
  769.     kQTPresetsPlatformListResourceType = FOUR_CHAR_CODE('stgp')
  770. };
  771.  
  772. enum {
  773.     kQTPresetInfoIsDivider        = 1
  774. };
  775.  
  776.  
  777. struct QTPresetInfo {
  778.     OSType                             presetKey;                    /* unique key for this preset in presetsArray */
  779.     UInt32                             presetFlags;                /* flags about this preset */
  780.     OSType                             settingsResourceType;        /* resource type of settings resource */
  781.     SInt16                             settingsResourceID;            /* resource id of settings resource */
  782.     SInt16                             padding1;
  783.     SInt16                             nameStringListID;            /* name string list resource id */
  784.     SInt16                             nameStringIndex;            /* name string index */
  785.     SInt16                             infoStringListID;            /* info string list resource id */
  786.     SInt16                             infoStringIndex;            /* info string index */
  787. };
  788. typedef struct QTPresetInfo                QTPresetInfo;
  789.  
  790. struct QTPresetListRecord {
  791.     UInt32                             flags;                        /* flags for whole list */
  792.     UInt32                             count;                        /* number of elements in presetsArray */
  793.     UInt32                             reserved;
  794.     QTPresetInfo                     presetsArray[1];            /* info about each preset */
  795. };
  796. typedef struct QTPresetListRecord        QTPresetListRecord;
  797. enum {
  798.     kQTMovieExportSourceInfoResourceType = FOUR_CHAR_CODE('src#'),
  799.     kQTMovieExportSourceInfoIsMediaType = 1L << 0,
  800.     kQTMovieExportSourceInfoIsMediaCharacteristic = 1L << 1,
  801.     kQTMovieExportSourceInfoIsSourceType = 1L << 2
  802. };
  803.  
  804.  
  805. struct QTMovieExportSourceInfo {
  806.     OSType                             mediaType;                    /* Media type of source */
  807.     UInt16                             minCount;                    /* min number of sources of this kind required, zero if none required */
  808.     UInt16                             maxCount;                    /* max number of sources of this kind allowed, -1 if unlimited allowed */
  809.     long                             flags;                        /* reserved for flags */
  810. };
  811. typedef struct QTMovieExportSourceInfo    QTMovieExportSourceInfo;
  812.  
  813. struct QTMovieExportSourceRecord {
  814.     long                             count;
  815.     long                             reserved;
  816.     QTMovieExportSourceInfo         sourceArray[1];
  817. };
  818. typedef struct QTMovieExportSourceRecord QTMovieExportSourceRecord;
  819. typedef STACK_UPP_TYPE(MovieExportGetDataProcPtr)                 MovieExportGetDataUPP;
  820. typedef STACK_UPP_TYPE(MovieExportGetPropertyProcPtr)             MovieExportGetPropertyUPP;
  821. #if OPAQUE_UPP_TYPES
  822.     EXTERN_API(SCModalFilterUPP)
  823.     NewSCModalFilterUPP               (SCModalFilterProcPtr    userRoutine);
  824.  
  825.     EXTERN_API(SCModalHookUPP)
  826.     NewSCModalHookUPP               (SCModalHookProcPtr        userRoutine);
  827.  
  828.     EXTERN_API(MovieExportGetDataUPP)
  829.     NewMovieExportGetDataUPP       (MovieExportGetDataProcPtr userRoutine);
  830.  
  831.     EXTERN_API(MovieExportGetPropertyUPP)
  832.     NewMovieExportGetPropertyUPP    (MovieExportGetPropertyProcPtr userRoutine);
  833.  
  834.     EXTERN_API(void)
  835.     DisposeSCModalFilterUPP           (SCModalFilterUPP        userUPP);
  836.  
  837.     EXTERN_API(void)
  838.     DisposeSCModalHookUPP           (SCModalHookUPP            userUPP);
  839.  
  840.     EXTERN_API(void)
  841.     DisposeMovieExportGetDataUPP    (MovieExportGetDataUPP    userUPP);
  842.  
  843.     EXTERN_API(void)
  844.     DisposeMovieExportGetPropertyUPP    (MovieExportGetPropertyUPP userUPP);
  845.  
  846.     EXTERN_API(Boolean)
  847.     InvokeSCModalFilterUPP           (DialogPtr                theDialog,
  848.                                     EventRecord *            theEvent,
  849.                                     short *                    itemHit,
  850.                                     long                    refcon,
  851.                                     SCModalFilterUPP        userUPP);
  852.  
  853.     EXTERN_API(short)
  854.     InvokeSCModalHookUPP           (DialogPtr                theDialog,
  855.                                     short                    itemHit,
  856.                                     void *                    params,
  857.                                     long                    refcon,
  858.                                     SCModalHookUPP            userUPP);
  859.  
  860.     EXTERN_API(OSErr)
  861.     InvokeMovieExportGetDataUPP       (void *                    refCon,
  862.                                     MovieExportGetDataParams * params,
  863.                                     MovieExportGetDataUPP    userUPP);
  864.  
  865.     EXTERN_API(OSErr)
  866.     InvokeMovieExportGetPropertyUPP    (void *                refcon,
  867.                                     long                    trackID,
  868.                                     OSType                    propertyType,
  869.                                     void *                    propertyValue,
  870.                                     MovieExportGetPropertyUPP userUPP);
  871.  
  872. #else
  873.     enum { uppSCModalFilterProcInfo = 0x00003FD0 };                 /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  874.     enum { uppSCModalHookProcInfo = 0x00003EE0 };                     /* pascal 2_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
  875.     enum { uppMovieExportGetDataProcInfo = 0x000003E0 };             /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  876.     enum { uppMovieExportGetPropertyProcInfo = 0x00003FE0 };         /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  877.     #define NewSCModalFilterUPP(userRoutine)                         (SCModalFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCModalFilterProcInfo, GetCurrentArchitecture())
  878.     #define NewSCModalHookUPP(userRoutine)                             (SCModalHookUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCModalHookProcInfo, GetCurrentArchitecture())
  879.     #define NewMovieExportGetDataUPP(userRoutine)                     (MovieExportGetDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieExportGetDataProcInfo, GetCurrentArchitecture())
  880.     #define NewMovieExportGetPropertyUPP(userRoutine)                 (MovieExportGetPropertyUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieExportGetPropertyProcInfo, GetCurrentArchitecture())
  881.     #define DisposeSCModalFilterUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  882.     #define DisposeSCModalHookUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  883.     #define DisposeMovieExportGetDataUPP(userUPP)                     DisposeRoutineDescriptor(userUPP)
  884.     #define DisposeMovieExportGetPropertyUPP(userUPP)                 DisposeRoutineDescriptor(userUPP)
  885.     #define InvokeSCModalFilterUPP(theDialog, theEvent, itemHit, refcon, userUPP)  (Boolean)CALL_FOUR_PARAMETER_UPP((userUPP), uppSCModalFilterProcInfo, (theDialog), (theEvent), (itemHit), (refcon))
  886.     #define InvokeSCModalHookUPP(theDialog, itemHit, params, refcon, userUPP)  (short)CALL_FOUR_PARAMETER_UPP((userUPP), uppSCModalHookProcInfo, (theDialog), (itemHit), (params), (refcon))
  887.     #define InvokeMovieExportGetDataUPP(refCon, params, userUPP)     (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppMovieExportGetDataProcInfo, (refCon), (params))
  888.     #define InvokeMovieExportGetPropertyUPP(refcon, trackID, propertyType, propertyValue, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppMovieExportGetPropertyProcInfo, (refcon), (trackID), (propertyType), (propertyValue))
  889. #endif
  890. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  891. #define NewSCModalFilterProc(userRoutine)                         NewSCModalFilterUPP(userRoutine)
  892. #define NewSCModalHookProc(userRoutine)                         NewSCModalHookUPP(userRoutine)
  893. #define NewMovieExportGetDataProc(userRoutine)                     NewMovieExportGetDataUPP(userRoutine)
  894. #define NewMovieExportGetPropertyProc(userRoutine)                 NewMovieExportGetPropertyUPP(userRoutine)
  895. #define CallSCModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refcon) InvokeSCModalFilterUPP(theDialog, theEvent, itemHit, refcon, userRoutine)
  896. #define CallSCModalHookProc(userRoutine, theDialog, itemHit, params, refcon) InvokeSCModalHookUPP(theDialog, itemHit, params, refcon, userRoutine)
  897. #define CallMovieExportGetDataProc(userRoutine, refCon, params)    InvokeMovieExportGetDataUPP(refCon, params, userRoutine)
  898. #define CallMovieExportGetPropertyProc(userRoutine, refcon, trackID, propertyType, propertyValue) InvokeMovieExportGetPropertyUPP(refcon, trackID, propertyType, propertyValue, userRoutine)
  899. EXTERN_API( ComponentResult )
  900. MovieImportHandle                (MovieImportComponent     ci,
  901.                                  Handle                 dataH,
  902.                                  Movie                     theMovie,
  903.                                  Track                     targetTrack,
  904.                                  Track *                usedTrack,
  905.                                  TimeValue                 atTime,
  906.                                  TimeValue *            addedDuration,
  907.                                  long                     inFlags,
  908.                                  long *                    outFlags)                            FIVEWORDINLINE(0x2F3C, 0x0020, 0x0001, 0x7000, 0xA82A);
  909.  
  910. EXTERN_API( ComponentResult )
  911. MovieImportFile                    (MovieImportComponent     ci,
  912.                                  const FSSpec *            theFile,
  913.                                  Movie                     theMovie,
  914.                                  Track                     targetTrack,
  915.                                  Track *                usedTrack,
  916.                                  TimeValue                 atTime,
  917.                                  TimeValue *            addedDuration,
  918.                                  long                     inFlags,
  919.                                  long *                    outFlags)                            FIVEWORDINLINE(0x2F3C, 0x0020, 0x0002, 0x7000, 0xA82A);
  920.  
  921. EXTERN_API( ComponentResult )
  922. MovieImportSetSampleDuration    (MovieImportComponent     ci,
  923.                                  TimeValue                 duration,
  924.                                  TimeScale                 scale)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0003, 0x7000, 0xA82A);
  925.  
  926. EXTERN_API( ComponentResult )
  927. MovieImportSetSampleDescription    (MovieImportComponent     ci,
  928.                                  SampleDescriptionHandle  desc,
  929.                                  OSType                 mediaType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  930.  
  931. EXTERN_API( ComponentResult )
  932. MovieImportSetMediaFile            (MovieImportComponent     ci,
  933.                                  AliasHandle             alias)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A);
  934.  
  935. EXTERN_API( ComponentResult )
  936. MovieImportSetDimensions        (MovieImportComponent     ci,
  937.                                  Fixed                     width,
  938.                                  Fixed                     height)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0006, 0x7000, 0xA82A);
  939.  
  940. EXTERN_API( ComponentResult )
  941. MovieImportSetChunkSize            (MovieImportComponent     ci,
  942.                                  long                     chunkSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  943.  
  944. EXTERN_API( ComponentResult )
  945. MovieImportSetProgressProc        (MovieImportComponent     ci,
  946.                                  MovieProgressUPP         proc,
  947.                                  long                     refcon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0008, 0x7000, 0xA82A);
  948.  
  949. EXTERN_API( ComponentResult )
  950. MovieImportSetAuxiliaryData        (MovieImportComponent     ci,
  951.                                  Handle                 data,
  952.                                  OSType                 handleType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A);
  953.  
  954. EXTERN_API( ComponentResult )
  955. MovieImportSetFromScrap            (MovieImportComponent     ci,
  956.                                  Boolean                 fromScrap)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x000A, 0x7000, 0xA82A);
  957.  
  958. EXTERN_API( ComponentResult )
  959. MovieImportDoUserDialog            (MovieImportComponent     ci,
  960.                                  const FSSpec *            theFile,
  961.                                  Handle                 theData,
  962.                                  Boolean *                canceled)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x000B, 0x7000, 0xA82A);
  963.  
  964. EXTERN_API( ComponentResult )
  965. MovieImportSetDuration            (MovieImportComponent     ci,
  966.                                  TimeValue                 duration)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  967.  
  968. EXTERN_API( ComponentResult )
  969. MovieImportGetAuxiliaryDataType    (MovieImportComponent     ci,
  970.                                  OSType *                auxType)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  971.  
  972. EXTERN_API( ComponentResult )
  973. MovieImportValidate                (MovieImportComponent     ci,
  974.                                  const FSSpec *            theFile,
  975.                                  Handle                 theData,
  976.                                  Boolean *                valid)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x000E, 0x7000, 0xA82A);
  977.  
  978. EXTERN_API( ComponentResult )
  979. MovieImportGetFileType            (MovieImportComponent     ci,
  980.                                  OSType *                fileType)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A);
  981.  
  982. EXTERN_API( ComponentResult )
  983. MovieImportDataRef                (MovieImportComponent     ci,
  984.                                  Handle                 dataRef,
  985.                                  OSType                 dataRefType,
  986.                                  Movie                     theMovie,
  987.                                  Track                     targetTrack,
  988.                                  Track *                usedTrack,
  989.                                  TimeValue                 atTime,
  990.                                  TimeValue *            addedDuration,
  991.                                  long                     inFlags,
  992.                                  long *                    outFlags)                            FIVEWORDINLINE(0x2F3C, 0x0024, 0x0010, 0x7000, 0xA82A);
  993.  
  994. EXTERN_API( ComponentResult )
  995. MovieImportGetSampleDescription    (MovieImportComponent     ci,
  996.                                  SampleDescriptionHandle * desc,
  997.                                  OSType *                mediaType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0011, 0x7000, 0xA82A);
  998.  
  999. EXTERN_API( ComponentResult )
  1000. MovieImportGetMIMETypeList        (MovieImportComponent     ci,
  1001.                                  QTAtomContainer *        mimeInfo)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A);
  1002.  
  1003. EXTERN_API( ComponentResult )
  1004. MovieImportSetOffsetAndLimit    (MovieImportComponent     ci,
  1005.                                  unsigned long             offset,
  1006.                                  unsigned long             limit)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0013, 0x7000, 0xA82A);
  1007.  
  1008. EXTERN_API( ComponentResult )
  1009. MovieImportGetSettingsAsAtomContainer (MovieImportComponent  ci,
  1010.                                  QTAtomContainer *        settings)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  1011.  
  1012. EXTERN_API( ComponentResult )
  1013. MovieImportSetSettingsFromAtomContainer (MovieImportComponent  ci,
  1014.                                  QTAtomContainer         settings)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  1015.  
  1016. EXTERN_API( ComponentResult )
  1017. MovieImportSetOffsetAndLimit64    (MovieImportComponent     ci,
  1018.                                  const wide *            offset,
  1019.                                  const wide *            limit)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
  1020.  
  1021. EXTERN_API( ComponentResult )
  1022. MovieImportIdle                    (MovieImportComponent     ci,
  1023.                                  long                     inFlags,
  1024.                                  long *                    outFlags)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A);
  1025.  
  1026. EXTERN_API( ComponentResult )
  1027. MovieImportValidateDataRef        (MovieImportComponent     ci,
  1028.                                  Handle                 dataRef,
  1029.                                  OSType                 dataRefType,
  1030.                                  UInt8 *                valid)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0018, 0x7000, 0xA82A);
  1031.  
  1032. EXTERN_API( ComponentResult )
  1033. MovieImportGetLoadState            (MovieImportComponent     ci,
  1034.                                  long *                    importerLoadState)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  1035.  
  1036. EXTERN_API( ComponentResult )
  1037. MovieImportGetMaxLoadedTime        (MovieImportComponent     ci,
  1038.                                  TimeValue *            time)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  1039.  
  1040. EXTERN_API( ComponentResult )
  1041. MovieExportToHandle                (MovieExportComponent     ci,
  1042.                                  Handle                 dataH,
  1043.                                  Movie                     theMovie,
  1044.                                  Track                     onlyThisTrack,
  1045.                                  TimeValue                 startTime,
  1046.                                  TimeValue                 duration)                            FIVEWORDINLINE(0x2F3C, 0x0014, 0x0080, 0x7000, 0xA82A);
  1047.  
  1048. EXTERN_API( ComponentResult )
  1049. MovieExportToFile                (MovieExportComponent     ci,
  1050.                                  const FSSpec *            theFile,
  1051.                                  Movie                     theMovie,
  1052.                                  Track                     onlyThisTrack,
  1053.                                  TimeValue                 startTime,
  1054.                                  TimeValue                 duration)                            FIVEWORDINLINE(0x2F3C, 0x0014, 0x0081, 0x7000, 0xA82A);
  1055.  
  1056. EXTERN_API( ComponentResult )
  1057. MovieExportGetAuxiliaryData        (MovieExportComponent     ci,
  1058.                                  Handle                 dataH,
  1059.                                  OSType *                handleType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0083, 0x7000, 0xA82A);
  1060.  
  1061. EXTERN_API( ComponentResult )
  1062. MovieExportSetProgressProc        (MovieExportComponent     ci,
  1063.                                  MovieProgressUPP         proc,
  1064.                                  long                     refcon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0084, 0x7000, 0xA82A);
  1065.  
  1066. EXTERN_API( ComponentResult )
  1067. MovieExportSetSampleDescription    (MovieExportComponent     ci,
  1068.                                  SampleDescriptionHandle  desc,
  1069.                                  OSType                 mediaType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0085, 0x7000, 0xA82A);
  1070.  
  1071. EXTERN_API( ComponentResult )
  1072. MovieExportDoUserDialog            (MovieExportComponent     ci,
  1073.                                  Movie                     theMovie,
  1074.                                  Track                     onlyThisTrack,
  1075.                                  TimeValue                 startTime,
  1076.                                  TimeValue                 duration,
  1077.                                  Boolean *                canceled)                            FIVEWORDINLINE(0x2F3C, 0x0014, 0x0086, 0x7000, 0xA82A);
  1078.  
  1079. EXTERN_API( ComponentResult )
  1080. MovieExportGetCreatorType        (MovieExportComponent     ci,
  1081.                                  OSType *                creator)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0087, 0x7000, 0xA82A);
  1082.  
  1083. EXTERN_API( ComponentResult )
  1084. MovieExportToDataRef            (MovieExportComponent     ci,
  1085.                                  Handle                 dataRef,
  1086.                                  OSType                 dataRefType,
  1087.                                  Movie                     theMovie,
  1088.                                  Track                     onlyThisTrack,
  1089.                                  TimeValue                 startTime,
  1090.                                  TimeValue                 duration)                            FIVEWORDINLINE(0x2F3C, 0x0018, 0x0088, 0x7000, 0xA82A);
  1091.  
  1092. EXTERN_API( ComponentResult )
  1093. MovieExportFromProceduresToDataRef (MovieExportComponent  ci,
  1094.                                  Handle                 dataRef,
  1095.                                  OSType                 dataRefType)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0089, 0x7000, 0xA82A);
  1096.  
  1097. EXTERN_API( ComponentResult )
  1098. MovieExportAddDataSource        (MovieExportComponent     ci,
  1099.                                  OSType                 trackType,
  1100.                                  TimeScale                 scale,
  1101.                                  long *                    trackID,
  1102.                                  MovieExportGetPropertyUPP  getPropertyProc,
  1103.                                  MovieExportGetDataUPP     getDataProc,
  1104.                                  void *                    refCon)                                FIVEWORDINLINE(0x2F3C, 0x0018, 0x008A, 0x7000, 0xA82A);
  1105.  
  1106. EXTERN_API( ComponentResult )
  1107. MovieExportValidate                (MovieExportComponent     ci,
  1108.                                  Movie                     theMovie,
  1109.                                  Track                     onlyThisTrack,
  1110.                                  Boolean *                valid)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x008B, 0x7000, 0xA82A);
  1111.  
  1112. EXTERN_API( ComponentResult )
  1113. MovieExportGetSettingsAsAtomContainer (MovieExportComponent  ci,
  1114.                                  QTAtomContainer *        settings)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x008C, 0x7000, 0xA82A);
  1115.  
  1116. EXTERN_API( ComponentResult )
  1117. MovieExportSetSettingsFromAtomContainer (MovieExportComponent  ci,
  1118.                                  QTAtomContainer         settings)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x008D, 0x7000, 0xA82A);
  1119.  
  1120. EXTERN_API( ComponentResult )
  1121. MovieExportGetFileNameExtension    (MovieExportComponent     ci,
  1122.                                  OSType *                extension)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x008E, 0x7000, 0xA82A);
  1123.  
  1124. EXTERN_API( ComponentResult )
  1125. MovieExportGetShortFileTypeString (MovieExportComponent  ci,
  1126.                                  Str255                 typeString)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x008F, 0x7000, 0xA82A);
  1127.  
  1128. EXTERN_API( ComponentResult )
  1129. MovieExportGetSourceMediaType    (MovieExportComponent     ci,
  1130.                                  OSType *                mediaType)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0090, 0x7000, 0xA82A);
  1131.  
  1132. EXTERN_API( ComponentResult )
  1133. MovieExportSetGetMoviePropertyProc (MovieExportComponent  ci,
  1134.                                  MovieExportGetPropertyUPP  getPropertyProc,
  1135.                                  void *                    refCon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0091, 0x7000, 0xA82A);
  1136.  
  1137. /* Text Export Display Info data structure*/
  1138.  
  1139. struct TextDisplayData {
  1140.     long                             displayFlags;
  1141.     long                             textJustification;
  1142.     RGBColor                         bgColor;
  1143.     Rect                             textBox;
  1144.  
  1145.     short                             beginHilite;
  1146.     short                             endHilite;
  1147.     RGBColor                         hiliteColor;
  1148.     Boolean                         doHiliteColor;
  1149.     SInt8                             filler;
  1150.     TimeValue                         scrollDelayDur;
  1151.     Point                             dropShadowOffset;
  1152.     short                             dropShadowTransparency;
  1153. };
  1154. typedef struct TextDisplayData            TextDisplayData;
  1155.  
  1156. typedef ComponentInstance                 TextExportComponent;
  1157. typedef ComponentInstance                 GraphicImageMovieImportComponent;
  1158. EXTERN_API( ComponentResult )
  1159. TextExportGetDisplayData        (TextExportComponent     ci,
  1160.                                  TextDisplayData *        textDisplay)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  1161.  
  1162. EXTERN_API( ComponentResult )
  1163. TextExportGetTimeFraction        (TextExportComponent     ci,
  1164.                                  long *                    movieTimeFraction)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  1165.  
  1166. EXTERN_API( ComponentResult )
  1167. TextExportSetTimeFraction        (TextExportComponent     ci,
  1168.                                  long                     movieTimeFraction)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  1169.  
  1170. EXTERN_API( ComponentResult )
  1171. TextExportGetSettings            (TextExportComponent     ci,
  1172.                                  long *                    setting)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  1173.  
  1174. EXTERN_API( ComponentResult )
  1175. TextExportSetSettings            (TextExportComponent     ci,
  1176.                                  long                     setting)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  1177.  
  1178.  
  1179. EXTERN_API( ComponentResult )
  1180. MIDIImportGetSettings            (TextExportComponent     ci,
  1181.                                  long *                    setting)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  1182.  
  1183. EXTERN_API( ComponentResult )
  1184. MIDIImportSetSettings            (TextExportComponent     ci,
  1185.                                  long                     setting)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  1186.  
  1187. EXTERN_API( ComponentResult )
  1188. MovieExportNewGetDataAndPropertiesProcs (MovieExportComponent  ci,
  1189.                                  OSType                 trackType,
  1190.                                  TimeScale *            scale,
  1191.                                  Movie                     theMovie,
  1192.                                  Track                     theTrack,
  1193.                                  TimeValue                 startTime,
  1194.                                  TimeValue                 duration,
  1195.                                  MovieExportGetPropertyUPP * getPropertyProc,
  1196.                                  MovieExportGetDataUPP * getDataProc,
  1197.                                  void **                refCon)                                FIVEWORDINLINE(0x2F3C, 0x0024, 0x0100, 0x7000, 0xA82A);
  1198.  
  1199. EXTERN_API( ComponentResult )
  1200. MovieExportDisposeGetDataAndPropertiesProcs (MovieExportComponent  ci,
  1201.                                  MovieExportGetPropertyUPP  getPropertyProc,
  1202.                                  MovieExportGetDataUPP     getDataProc,
  1203.                                  void *                    refCon)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0101, 0x7000, 0xA82A);
  1204.  
  1205. enum {
  1206.     movieExportUseConfiguredSettings = FOUR_CHAR_CODE('ucfg'),    /* pointer to Boolean*/
  1207.     movieExportWidth            = FOUR_CHAR_CODE('wdth'),        /* pointer to Fixed*/
  1208.     movieExportHeight            = FOUR_CHAR_CODE('hegt'),        /* pointer to Fixed*/
  1209.     movieExportDuration            = FOUR_CHAR_CODE('dura'),        /* pointer to TimeRecord*/
  1210.     movieExportVideoFilter        = FOUR_CHAR_CODE('iflt'),        /* pointer to QTAtomContainer*/
  1211.     movieExportTimeScale        = FOUR_CHAR_CODE('tmsc')        /* pointer to TimeScale*/
  1212. };
  1213.  
  1214. EXTERN_API( ComponentResult )
  1215. GraphicsImageImportSetSequenceEnabled (GraphicImageMovieImportComponent  ci,
  1216.                                  Boolean                 enable)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0100, 0x7000, 0xA82A);
  1217.  
  1218. EXTERN_API( ComponentResult )
  1219. GraphicsImageImportGetSequenceEnabled (GraphicImageMovieImportComponent  ci,
  1220.                                  Boolean *                enable)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229. /***************
  1230.  
  1231.     File Preview Components
  1232.  
  1233. ***************/
  1234. typedef ComponentInstance                 pnotComponent;
  1235. enum {
  1236.     pnotComponentWantsEvents    = 1,
  1237.     pnotComponentNeedsNoCache    = 2
  1238. };
  1239.  
  1240. enum {
  1241.     ShowFilePreviewComponentType = FOUR_CHAR_CODE('pnot'),
  1242.     CreateFilePreviewComponentType = FOUR_CHAR_CODE('pmak')
  1243. };
  1244.  
  1245. EXTERN_API( ComponentResult )
  1246. PreviewShowData                    (pnotComponent             p,
  1247.                                  OSType                 dataType,
  1248.                                  Handle                 data,
  1249.                                  const Rect *            inHere)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0001, 0x7000, 0xA82A);
  1250.  
  1251. EXTERN_API( ComponentResult )
  1252. PreviewMakePreview                (pnotComponent             p,
  1253.                                  OSType *                previewType,
  1254.                                  Handle *                previewResult,
  1255.                                  const FSSpec *            sourceFile,
  1256.                                  ICMProgressProcRecordPtr  progress)                        FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A);
  1257.  
  1258. EXTERN_API( ComponentResult )
  1259. PreviewMakePreviewReference        (pnotComponent             p,
  1260.                                  OSType *                previewType,
  1261.                                  short *                resID,
  1262.                                  const FSSpec *            sourceFile)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0003, 0x7000, 0xA82A);
  1263.  
  1264. EXTERN_API( ComponentResult )
  1265. PreviewEvent                    (pnotComponent             p,
  1266.                                  EventRecord *            e,
  1267.                                  Boolean *                handledEvent)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  1268.  
  1269.  
  1270.  
  1271. typedef ComponentInstance                 DataCompressorComponent;
  1272. typedef ComponentInstance                 DataDecompressorComponent;
  1273. typedef ComponentInstance                 DataCodecComponent;
  1274. enum {
  1275.     DataCompressorComponentType    = FOUR_CHAR_CODE('dcom'),
  1276.     DataDecompressorComponentType = FOUR_CHAR_CODE('ddec'),
  1277.     AppleDataCompressorSubType    = FOUR_CHAR_CODE('adec'),
  1278.     zlibDataCompressorSubType    = FOUR_CHAR_CODE('zlib')
  1279. };
  1280.  
  1281.  
  1282. /** These are DataCodec procedures **/
  1283. EXTERN_API( ComponentResult )
  1284. DataCodecDecompress                (DataCodecComponent     dc,
  1285.                                  void *                    srcData,
  1286.                                  UInt32                 srcSize,
  1287.                                  void *                    dstData,
  1288.                                  UInt32                 dstBufferSize)                        FIVEWORDINLINE(0x2F3C, 0x0010, 0x0001, 0x7000, 0xA82A);
  1289.  
  1290. EXTERN_API( ComponentResult )
  1291. DataCodecGetCompressBufferSize    (DataCodecComponent     dc,
  1292.                                  UInt32                 srcSize,
  1293.                                  UInt32 *                dstSize)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A);
  1294.  
  1295. EXTERN_API( ComponentResult )
  1296. DataCodecCompress                (DataCodecComponent     dc,
  1297.                                  void *                    srcData,
  1298.                                  UInt32                 srcSize,
  1299.                                  void *                    dstData,
  1300.                                  UInt32                 dstBufferSize,
  1301.                                  UInt32 *                actualDstSize,
  1302.                                  UInt32 *                decompressSlop)                        FIVEWORDINLINE(0x2F3C, 0x0018, 0x0003, 0x7000, 0xA82A);
  1303.  
  1304. EXTERN_API( ComponentResult )
  1305. DataCodecBeginInterruptSafe        (DataCodecComponent     dc,
  1306.                                  unsigned long             maxSrcSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A);
  1307.  
  1308. EXTERN_API( ComponentResult )
  1309. DataCodecEndInterruptSafe        (DataCodecComponent     dc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A);
  1310.  
  1311. EXTERN_API( ComponentResult )
  1312. DataCodecDecompressPartial        (DataCodecComponent     dc,
  1313.                                  void **                next_in,
  1314.                                  unsigned long *        avail_in,
  1315.                                  unsigned long *        total_in,
  1316.                                  void **                next_out,
  1317.                                  unsigned long *        avail_out,
  1318.                                  unsigned long *        total_out,
  1319.                                  Boolean *                didFinish)                            FIVEWORDINLINE(0x2F3C, 0x001C, 0x0006, 0x7000, 0xA82A);
  1320.  
  1321. EXTERN_API( ComponentResult )
  1322. DataCodecCompressPartial        (DataCodecComponent     dc,
  1323.                                  void **                next_in,
  1324.                                  unsigned long *        avail_in,
  1325.                                  unsigned long *        total_in,
  1326.                                  void **                next_out,
  1327.                                  unsigned long *        avail_out,
  1328.                                  unsigned long *        total_out,
  1329.                                  Boolean                 tryToFinish,
  1330.                                  Boolean *                didFinish)                            FIVEWORDINLINE(0x2F3C, 0x001E, 0x0007, 0x7000, 0xA82A);
  1331.  
  1332.  
  1333.  
  1334.  
  1335. typedef CALLBACK_API( void , DataHCompletionProcPtr )(Ptr request, long refcon, OSErr err);
  1336. typedef STACK_UPP_TYPE(DataHCompletionProcPtr)                     DataHCompletionUPP;
  1337.  
  1338. enum {
  1339.     kDataHCanRead                = 1L << 0,
  1340.     kDataHSpecialRead            = 1L << 1,
  1341.     kDataHSpecialReadFile        = 1L << 2,
  1342.     kDataHCanWrite                = 1L << 3,
  1343.     kDataHSpecialWrite            = 1 << 4,
  1344.     kDataHSpecialWriteFile        = 1 << 5,
  1345.     kDataHCanStreamingWrite        = 1 << 6,
  1346.     kDataHMustCheckDataRef        = 1 << 7
  1347. };
  1348.  
  1349. /* Data reference extensions*/
  1350. enum {
  1351.     kDataRefExtensionChokeSpeed    = FOUR_CHAR_CODE('chok'),
  1352.     kDataRefExtensionMIMEType    = FOUR_CHAR_CODE('mime'),
  1353.     kDataRefExtensionMacOSFileType = FOUR_CHAR_CODE('ftyp'),
  1354.     kDataRefExtensionInitializationData = FOUR_CHAR_CODE('data')
  1355. };
  1356.  
  1357.  
  1358. enum {
  1359.     kDataHChokeToMovieDataRate    = 1 << 0,                        /* param is 0*/
  1360.     kDataHChokeToParam            = 1 << 1                        /* param is bytes per second*/
  1361. };
  1362.  
  1363.  
  1364. struct DataHChokeAtomRecord {
  1365.     long                             flags;                        /* one of kDataHChokeTo constants*/
  1366.     long                             param;
  1367. };
  1368. typedef struct DataHChokeAtomRecord        DataHChokeAtomRecord;
  1369.  
  1370.  
  1371. struct DataHVolumeListRecord {
  1372.     short                             vRefNum;
  1373.     long                             flags;
  1374. };
  1375. typedef struct DataHVolumeListRecord    DataHVolumeListRecord;
  1376.  
  1377. typedef DataHVolumeListRecord *            DataHVolumeListPtr;
  1378. typedef DataHVolumeListPtr *            DataHVolumeList;
  1379. enum {
  1380.     kDataHExtendedSchedule        = FOUR_CHAR_CODE('xtnd')
  1381. };
  1382.  
  1383.  
  1384. struct DataHScheduleRecord {
  1385.     TimeRecord                         timeNeededBy;
  1386.     long                             extendedID;                    /* always is kDataHExtendedSchedule*/
  1387.     long                             extendedVers;                /* always set to 0*/
  1388.     Fixed                             priority;                    /* 100.0 or more means must have. lower numbers...*/
  1389. };
  1390. typedef struct DataHScheduleRecord        DataHScheduleRecord;
  1391.  
  1392. typedef DataHScheduleRecord *            DataHSchedulePtr;
  1393. /* Flags for DataHGetInfoFlags*/
  1394. enum {
  1395.     kDataHInfoFlagNeverStreams    = 1 << 0,                        /* set if this data handler doesn't stream*/
  1396.     kDataHInfoFlagCanUpdateDataRefs = 1 << 1,                    /* set if this data handler might update data reference*/
  1397.     kDataHInfoFlagNeedsNetworkBandwidth = 1 << 2                /* set if this data handler may need to occupy the network*/
  1398. };
  1399.  
  1400.  
  1401.  
  1402.  
  1403. EXTERN_API( ComponentResult )
  1404. DataHGetData                    (DataHandler             dh,
  1405.                                  Handle                 h,
  1406.                                  long                     hOffset,
  1407.                                  long                     offset,
  1408.                                  long                     size)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A);
  1409.  
  1410. EXTERN_API( ComponentResult )
  1411. DataHPutData                    (DataHandler             dh,
  1412.                                  Handle                 h,
  1413.                                  long                     hOffset,
  1414.                                  long *                    offset,
  1415.                                  long                     size)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0003, 0x7000, 0xA82A);
  1416.  
  1417. EXTERN_API( ComponentResult )
  1418. DataHFlushData                    (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0004, 0x7000, 0xA82A);
  1419.  
  1420. EXTERN_API( ComponentResult )
  1421. DataHOpenForWrite                (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A);
  1422.  
  1423. EXTERN_API( ComponentResult )
  1424. DataHCloseForWrite                (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  1425.  
  1426.  
  1427. EXTERN_API( ComponentResult )
  1428. DataHOpenForRead                (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0008, 0x7000, 0xA82A);
  1429.  
  1430. EXTERN_API( ComponentResult )
  1431. DataHCloseForRead                (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0009, 0x7000, 0xA82A);
  1432.  
  1433. EXTERN_API( ComponentResult )
  1434. DataHSetDataRef                    (DataHandler             dh,
  1435.                                  Handle                 dataRef)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A);
  1436.  
  1437. EXTERN_API( ComponentResult )
  1438. DataHGetDataRef                    (DataHandler             dh,
  1439.                                  Handle *                dataRef)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A);
  1440.  
  1441. EXTERN_API( ComponentResult )
  1442. DataHCompareDataRef                (DataHandler             dh,
  1443.                                  Handle                 dataRef,
  1444.                                  Boolean *                equal)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A);
  1445.  
  1446. EXTERN_API( ComponentResult )
  1447. DataHTask                        (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000D, 0x7000, 0xA82A);
  1448.  
  1449. EXTERN_API( ComponentResult )
  1450. DataHScheduleData                (DataHandler             dh,
  1451.                                  Ptr                     PlaceToPutDataPtr,
  1452.                                  long                     FileOffset,
  1453.                                  long                     DataSize,
  1454.                                  long                     RefCon,
  1455.                                  DataHSchedulePtr         scheduleRec,
  1456.                                  DataHCompletionUPP     CompletionRtn)                        FIVEWORDINLINE(0x2F3C, 0x0018, 0x000E, 0x7000, 0xA82A);
  1457.  
  1458. EXTERN_API( ComponentResult )
  1459. DataHFinishData                    (DataHandler             dh,
  1460.                                  Ptr                     PlaceToPutDataPtr,
  1461.                                  Boolean                 Cancel)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x000F, 0x7000, 0xA82A);
  1462.  
  1463. EXTERN_API( ComponentResult )
  1464. DataHFlushCache                    (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0010, 0x7000, 0xA82A);
  1465.  
  1466. EXTERN_API( ComponentResult )
  1467. DataHResolveDataRef                (DataHandler             dh,
  1468.                                  Handle                 theDataRef,
  1469.                                  Boolean *                wasChanged,
  1470.                                  Boolean                 userInterfaceAllowed)                FIVEWORDINLINE(0x2F3C, 0x000A, 0x0011, 0x7000, 0xA82A);
  1471.  
  1472. EXTERN_API( ComponentResult )
  1473. DataHGetFileSize                (DataHandler             dh,
  1474.                                  long *                    fileSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A);
  1475.  
  1476. EXTERN_API( ComponentResult )
  1477. DataHCanUseDataRef                (DataHandler             dh,
  1478.                                  Handle                 dataRef,
  1479.                                  long *                    useFlags)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0013, 0x7000, 0xA82A);
  1480.  
  1481. EXTERN_API( ComponentResult )
  1482. DataHGetVolumeList                (DataHandler             dh,
  1483.                                  DataHVolumeList *        volumeList)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  1484.  
  1485. EXTERN_API( ComponentResult )
  1486. DataHWrite                        (DataHandler             dh,
  1487.                                  Ptr                     data,
  1488.                                  long                     offset,
  1489.                                  long                     size,
  1490.                                  DataHCompletionUPP     completion,
  1491.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0014, 0x0015, 0x7000, 0xA82A);
  1492.  
  1493. EXTERN_API( ComponentResult )
  1494. DataHPreextend                    (DataHandler             dh,
  1495.                                  unsigned long             maxToAdd,
  1496.                                  unsigned long *        spaceAdded)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
  1497.  
  1498. EXTERN_API( ComponentResult )
  1499. DataHSetFileSize                (DataHandler             dh,
  1500.                                  long                     fileSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0017, 0x7000, 0xA82A);
  1501.  
  1502. EXTERN_API( ComponentResult )
  1503. DataHGetFreeSpace                (DataHandler             dh,
  1504.                                  unsigned long *        freeSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  1505.  
  1506. EXTERN_API( ComponentResult )
  1507. DataHCreateFile                    (DataHandler             dh,
  1508.                                  OSType                 creator,
  1509.                                  Boolean                 deleteExisting)                        FIVEWORDINLINE(0x2F3C, 0x0006, 0x0019, 0x7000, 0xA82A);
  1510.  
  1511. EXTERN_API( ComponentResult )
  1512. DataHGetPreferredBlockSize        (DataHandler             dh,
  1513.                                  long *                    blockSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  1514.  
  1515. EXTERN_API( ComponentResult )
  1516. DataHGetDeviceIndex                (DataHandler             dh,
  1517.                                  long *                    deviceIndex)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  1518.  
  1519. EXTERN_API( ComponentResult )
  1520. DataHIsStreamingDataHandler        (DataHandler             dh,
  1521.                                  Boolean *                yes)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A);
  1522.  
  1523. EXTERN_API( ComponentResult )
  1524. DataHGetDataInBuffer            (DataHandler             dh,
  1525.                                  long                     startOffset,
  1526.                                  long *                    size)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x001D, 0x7000, 0xA82A);
  1527.  
  1528. EXTERN_API( ComponentResult )
  1529. DataHGetScheduleAheadTime        (DataHandler             dh,
  1530.                                  long *                    millisecs)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  1531.  
  1532. EXTERN_API( ComponentResult )
  1533. DataHSetCacheSizeLimit            (DataHandler             dh,
  1534.                                  Size                     cacheSizeLimit)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A);
  1535.  
  1536. EXTERN_API( ComponentResult )
  1537. DataHGetCacheSizeLimit            (DataHandler             dh,
  1538.                                  Size *                    cacheSizeLimit)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0020, 0x7000, 0xA82A);
  1539.  
  1540. EXTERN_API( ComponentResult )
  1541. DataHGetMovie                    (DataHandler             dh,
  1542.                                  Movie *                theMovie,
  1543.                                  short *                id)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0021, 0x7000, 0xA82A);
  1544.  
  1545. EXTERN_API( ComponentResult )
  1546. DataHAddMovie                    (DataHandler             dh,
  1547.                                  Movie                     theMovie,
  1548.                                  short *                id)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0022, 0x7000, 0xA82A);
  1549.  
  1550. EXTERN_API( ComponentResult )
  1551. DataHUpdateMovie                (DataHandler             dh,
  1552.                                  Movie                     theMovie,
  1553.                                  short                     id)                                    FIVEWORDINLINE(0x2F3C, 0x0006, 0x0023, 0x7000, 0xA82A);
  1554.  
  1555. EXTERN_API( ComponentResult )
  1556. DataHDoesBuffer                    (DataHandler             dh,
  1557.                                  Boolean *                buffersReads,
  1558.                                  Boolean *                buffersWrites)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0024, 0x7000, 0xA82A);
  1559.  
  1560. EXTERN_API( ComponentResult )
  1561. DataHGetFileName                (DataHandler             dh,
  1562.                                  Str255                 str)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  1563.  
  1564. EXTERN_API( ComponentResult )
  1565. DataHGetAvailableFileSize        (DataHandler             dh,
  1566.                                  long *                    fileSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A);
  1567.  
  1568. EXTERN_API( ComponentResult )
  1569. DataHGetMacOSFileType            (DataHandler             dh,
  1570.                                  OSType *                fileType)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A);
  1571.  
  1572. EXTERN_API( ComponentResult )
  1573. DataHGetMIMEType                (DataHandler             dh,
  1574.                                  Str255                 mimeType)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A);
  1575.  
  1576. EXTERN_API( ComponentResult )
  1577. DataHSetDataRefWithAnchor        (DataHandler             dh,
  1578.                                  Handle                 anchorDataRef,
  1579.                                  OSType                 dataRefType,
  1580.                                  Handle                 dataRef)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0029, 0x7000, 0xA82A);
  1581.  
  1582. EXTERN_API( ComponentResult )
  1583. DataHGetDataRefWithAnchor        (DataHandler             dh,
  1584.                                  Handle                 anchorDataRef,
  1585.                                  OSType                 dataRefType,
  1586.                                  Handle *                dataRef)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x002A, 0x7000, 0xA82A);
  1587.  
  1588. EXTERN_API( ComponentResult )
  1589. DataHSetMacOSFileType            (DataHandler             dh,
  1590.                                  OSType                 fileType)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x002B, 0x7000, 0xA82A);
  1591.  
  1592. EXTERN_API( ComponentResult )
  1593. DataHSetTimeBase                (DataHandler             dh,
  1594.                                  TimeBase                 tb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A);
  1595.  
  1596. EXTERN_API( ComponentResult )
  1597. DataHGetInfoFlags                (DataHandler             dh,
  1598.                                  UInt32 *                flags)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x002D, 0x7000, 0xA82A);
  1599.  
  1600. EXTERN_API( ComponentResult )
  1601. DataHScheduleData64                (DataHandler             dh,
  1602.                                  Ptr                     PlaceToPutDataPtr,
  1603.                                  const wide *            FileOffset,
  1604.                                  long                     DataSize,
  1605.                                  long                     RefCon,
  1606.                                  DataHSchedulePtr         scheduleRec,
  1607.                                  DataHCompletionUPP     CompletionRtn)                        FIVEWORDINLINE(0x2F3C, 0x0018, 0x002E, 0x7000, 0xA82A);
  1608.  
  1609. EXTERN_API( ComponentResult )
  1610. DataHWrite64                    (DataHandler             dh,
  1611.                                  Ptr                     data,
  1612.                                  const wide *            offset,
  1613.                                  long                     size,
  1614.                                  DataHCompletionUPP     completion,
  1615.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0014, 0x002F, 0x7000, 0xA82A);
  1616.  
  1617. EXTERN_API( ComponentResult )
  1618. DataHGetFileSize64                (DataHandler             dh,
  1619.                                  wide *                    fileSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A);
  1620.  
  1621. EXTERN_API( ComponentResult )
  1622. DataHPreextend64                (DataHandler             dh,
  1623.                                  const wide *            maxToAdd,
  1624.                                  wide *                    spaceAdded)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A);
  1625.  
  1626. EXTERN_API( ComponentResult )
  1627. DataHSetFileSize64                (DataHandler             dh,
  1628.                                  const wide *            fileSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0032, 0x7000, 0xA82A);
  1629.  
  1630. EXTERN_API( ComponentResult )
  1631. DataHGetFreeSpace64                (DataHandler             dh,
  1632.                                  wide *                    freeSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0033, 0x7000, 0xA82A);
  1633.  
  1634. EXTERN_API( ComponentResult )
  1635. DataHAppend64                    (DataHandler             dh,
  1636.                                  void *                    data,
  1637.                                  wide *                    fileOffset,
  1638.                                  unsigned long             size)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0034, 0x7000, 0xA82A);
  1639.  
  1640. EXTERN_API( ComponentResult )
  1641. DataHReadAsync                    (DataHandler             dh,
  1642.                                  void *                    dataPtr,
  1643.                                  UInt32                 dataSize,
  1644.                                  const wide *            dataOffset,
  1645.                                  DataHCompletionUPP     completion,
  1646.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0014, 0x0035, 0x7000, 0xA82A);
  1647.  
  1648. EXTERN_API( ComponentResult )
  1649. DataHPollRead                    (DataHandler             dh,
  1650.                                  void *                    dataPtr,
  1651.                                  UInt32 *                dataSizeSoFar)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0036, 0x7000, 0xA82A);
  1652.  
  1653. EXTERN_API( ComponentResult )
  1654. DataHGetDataAvailability        (DataHandler             dh,
  1655.                                  long                     offset,
  1656.                                  long                     len,
  1657.                                  long *                    missing_offset,
  1658.                                  long *                    missing_len)                        FIVEWORDINLINE(0x2F3C, 0x0010, 0x0037, 0x7000, 0xA82A);
  1659.  
  1660. EXTERN_API( ComponentResult )
  1661. DataHGetFileSizeAsync            (DataHandler             dh,
  1662.                                  wide *                    fileSize,
  1663.                                  DataHCompletionUPP     completionRtn,
  1664.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x003A, 0x7000, 0xA82A);
  1665.  
  1666. EXTERN_API( ComponentResult )
  1667. DataHGetDataRefAsType            (DataHandler             dh,
  1668.                                  OSType                 requestedType,
  1669.                                  Handle *                dataRef)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x003B, 0x7000, 0xA82A);
  1670.  
  1671. EXTERN_API( ComponentResult )
  1672. DataHSetDataRefExtension        (DataHandler             dh,
  1673.                                  Handle                 extension,
  1674.                                  OSType                 idType)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x003C, 0x7000, 0xA82A);
  1675.  
  1676. EXTERN_API( ComponentResult )
  1677. DataHGetDataRefExtension        (DataHandler             dh,
  1678.                                  Handle *                extension,
  1679.                                  OSType                 idType)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x003D, 0x7000, 0xA82A);
  1680.  
  1681. EXTERN_API( ComponentResult )
  1682. DataHGetMovieWithFlags            (DataHandler             dh,
  1683.                                  Movie *                theMovie,
  1684.                                  short *                id,
  1685.                                  short                     flags)                                FIVEWORDINLINE(0x2F3C, 0x000A, 0x003E, 0x7000, 0xA82A);
  1686.  
  1687.  
  1688. EXTERN_API( ComponentResult )
  1689. DataHPlaybackHints                (DataHandler             dh,
  1690.                                  long                     flags,
  1691.                                  unsigned long             minFileOffset,
  1692.                                  unsigned long             maxFileOffset,
  1693.                                  long                     bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x0010, 0x0103, 0x7000, 0xA82A);
  1694.  
  1695.  
  1696. EXTERN_API( ComponentResult )
  1697. DataHPlaybackHints64            (DataHandler             dh,
  1698.                                  long                     flags,
  1699.                                  const wide *            minFileOffset,
  1700.                                  const wide *            maxFileOffset,
  1701.                                  long                     bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x0010, 0x010E, 0x7000, 0xA82A);
  1702.  
  1703.  
  1704.  
  1705.  
  1706. /* Standard type for video digitizers */
  1707. enum {
  1708.     videoDigitizerComponentType    = FOUR_CHAR_CODE('vdig'),
  1709.     vdigInterfaceRev            = 2
  1710. };
  1711.  
  1712. /* Input Format Standards */
  1713. enum {
  1714.     ntscIn                        = 0,                            /* current input format */
  1715.     currentIn                    = 0,                            /* ntsc input format */
  1716.     palIn                        = 1,                            /* pal input format */
  1717.     secamIn                        = 2,                            /* secam input format */
  1718.     ntscReallyIn                = 3                                /* ntsc input format */
  1719. };
  1720.  
  1721. /* Input Formats */
  1722. enum {
  1723.     compositeIn                    = 0,                            /* input is composite format */
  1724.     sVideoIn                    = 1,                            /* input is sVideo format */
  1725.     rgbComponentIn                = 2,                            /* input is rgb component format */
  1726.     rgbComponentSyncIn            = 3,                            /* input is rgb component format (sync on green?)*/
  1727.     yuvComponentIn                = 4,                            /* input is yuv component format */
  1728.     yuvComponentSyncIn            = 5,                            /* input is yuv component format (sync on green?) */
  1729.     tvTunerIn                    = 6,
  1730.     sdiIn                        = 7
  1731. };
  1732.  
  1733.  
  1734. /* Video Digitizer PlayThru States */
  1735. enum {
  1736.     vdPlayThruOff                = 0,
  1737.     vdPlayThruOn                = 1
  1738. };
  1739.  
  1740. /* Input Color Space Modes */
  1741. enum {
  1742.     vdDigitizerBW                = 0,                            /* black and white */
  1743.     vdDigitizerRGB                = 1                                /* rgb color */
  1744. };
  1745.  
  1746. /* Phase Lock Loop Modes */
  1747. enum {
  1748.     vdBroadcastMode                = 0,                            /* Broadcast / Laser Disk video mode */
  1749.     vdVTRMode                    = 1                                /* VCR / Magnetic media mode */
  1750. };
  1751.  
  1752. /* Field Select Options */
  1753. enum {
  1754.     vdUseAnyField                = 0,                            /* Digitizers choice on field use */
  1755.     vdUseOddField                = 1,                            /* Use odd field for half size vert and smaller */
  1756.     vdUseEvenField                = 2                                /* Use even field for half size vert and smaller */
  1757. };
  1758.  
  1759. /* vdig types */
  1760. enum {
  1761.     vdTypeBasic                    = 0,                            /* basic, no clipping */
  1762.     vdTypeAlpha                    = 1,                            /* supports clipping with alpha channel */
  1763.     vdTypeMask                    = 2,                            /* supports clipping with mask plane */
  1764.     vdTypeKey                    = 3                                /* supports clipping with key color(s) */
  1765. };
  1766.  
  1767.  
  1768.  
  1769. /* Digitizer Input Capability/Current Flags    */
  1770. enum {
  1771.     digiInDoesNTSC                = 1L << 0,                        /* digitizer supports NTSC input format */
  1772.     digiInDoesPAL                = 1L << 1,                        /* digitizer supports PAL input format */
  1773.     digiInDoesSECAM                = 1L << 2,                        /* digitizer supports SECAM input format */
  1774.     digiInDoesGenLock            = 1L << 7,                        /* digitizer does genlock */
  1775.     digiInDoesComposite            = 1L << 8,                        /* digitizer supports composite input type */
  1776.     digiInDoesSVideo            = 1L << 9,                        /* digitizer supports S-Video input type */
  1777.     digiInDoesComponent            = 1L << 10,                        /* digitizer supports component = rgb, input type */
  1778.     digiInVTR_Broadcast            = 1L << 11,                        /* digitizer can differentiate between the two */
  1779.     digiInDoesColor                = 1L << 12,                        /* digitizer supports color */
  1780.     digiInDoesBW                = 1L << 13,                        /* digitizer supports black & white */
  1781.                                                                 /* Digitizer Input Current Flags = these are valid only during active operating conditions,    */
  1782.     digiInSignalLock            = 1L << 31                        /* digitizer detects input signal is locked, this bit = horiz lock || vertical lock */
  1783. };
  1784.  
  1785.  
  1786. /* Digitizer Output Capability/Current Flags */
  1787. enum {
  1788.     digiOutDoes1                = 1L << 0,                        /* digitizer supports 1 bit pixels */
  1789.     digiOutDoes2                = 1L << 1,                        /* digitizer supports 2 bit pixels */
  1790.     digiOutDoes4                = 1L << 2,                        /* digitizer supports 4 bit pixels */
  1791.     digiOutDoes8                = 1L << 3,                        /* digitizer supports 8 bit pixels */
  1792.     digiOutDoes16                = 1L << 4,                        /* digitizer supports 16 bit pixels */
  1793.     digiOutDoes32                = 1L << 5,                        /* digitizer supports 32 bit pixels */
  1794.     digiOutDoesDither            = 1L << 6,                        /* digitizer dithers in indexed modes */
  1795.     digiOutDoesStretch            = 1L << 7,                        /* digitizer can arbitrarily stretch */
  1796.     digiOutDoesShrink            = 1L << 8,                        /* digitizer can arbitrarily shrink */
  1797.     digiOutDoesMask                = 1L << 9,                        /* digitizer can mask to clipping regions */
  1798.     digiOutDoesDouble            = 1L << 11,                        /* digitizer can stretch to exactly double size */
  1799.     digiOutDoesQuad                = 1L << 12,                        /* digitizer can stretch exactly quadruple size */
  1800.     digiOutDoesQuarter            = 1L << 13,                        /* digitizer can shrink to exactly quarter size */
  1801.     digiOutDoesSixteenth        = 1L << 14,                        /* digitizer can shrink to exactly sixteenth size */
  1802.     digiOutDoesRotate            = 1L << 15,                        /* digitizer supports rotate transformations */
  1803.     digiOutDoesHorizFlip        = 1L << 16,                        /* digitizer supports horizontal flips Sx < 0 */
  1804.     digiOutDoesVertFlip            = 1L << 17,                        /* digitizer supports vertical flips Sy < 0 */
  1805.     digiOutDoesSkew                = 1L << 18,                        /* digitizer supports skew = shear,twist, */
  1806.     digiOutDoesBlend            = 1L << 19,
  1807.     digiOutDoesWarp                = 1L << 20,
  1808.     digiOutDoesHW_DMA            = 1L << 21,                        /* digitizer not constrained to local device */
  1809.     digiOutDoesHWPlayThru        = 1L << 22,                        /* digitizer doesn't need time to play thru */
  1810.     digiOutDoesILUT                = 1L << 23,                        /* digitizer does inverse LUT for index modes */
  1811.     digiOutDoesKeyColor            = 1L << 24,                        /* digitizer does key color functions too */
  1812.     digiOutDoesAsyncGrabs        = 1L << 25,                        /* digitizer supports async grabs */
  1813.     digiOutDoesUnreadableScreenBits = 1L << 26,                    /* playthru doesn't generate readable bits on screen*/
  1814.     digiOutDoesCompress            = 1L << 27,                        /* supports alternate output data types */
  1815.     digiOutDoesCompressOnly        = 1L << 28,                        /* can't provide raw frames anywhere */
  1816.     digiOutDoesPlayThruDuringCompress = 1L << 29,                /* digi can do playthru while providing compressed data */
  1817.     digiOutDoesCompressPartiallyVisible = 1L << 30                /* digi doesn't need all bits visible on screen to do hardware compress */
  1818. };
  1819.  
  1820. /* Types */
  1821. typedef ComponentInstance                 VideoDigitizerComponent;
  1822. typedef ComponentResult                 VideoDigitizerError;
  1823.  
  1824. struct DigitizerInfo {
  1825.     short                             vdigType;
  1826.     long                             inputCapabilityFlags;
  1827.     long                             outputCapabilityFlags;
  1828.     long                             inputCurrentFlags;
  1829.     long                             outputCurrentFlags;
  1830.     short                             slot;                        /* temporary for connection purposes */
  1831.     GDHandle                         gdh;                        /* temporary for digitizers that have preferred screen */
  1832.     GDHandle                         maskgdh;                    /* temporary for digitizers that have mask planes */
  1833.     short                             minDestHeight;                /* Smallest resizable height */
  1834.     short                             minDestWidth;                /* Smallest resizable width */
  1835.     short                             maxDestHeight;                /* Largest resizable height */
  1836.     short                             maxDestWidth;                /* Largest resizable width */
  1837.     short                             blendLevels;                /* Number of blend levels supported (2 if 1 bit mask) */
  1838.     long                             reserved;                    /* reserved */
  1839. };
  1840. typedef struct DigitizerInfo            DigitizerInfo;
  1841.  
  1842. struct VdigType {
  1843.     long                             digType;
  1844.     long                             reserved;
  1845. };
  1846. typedef struct VdigType                    VdigType;
  1847.  
  1848. struct VdigTypeList {
  1849.     short                             count;
  1850.     VdigType                         list[1];
  1851. };
  1852. typedef struct VdigTypeList                VdigTypeList;
  1853.  
  1854. struct VdigBufferRec {
  1855.     PixMapHandle                     dest;
  1856.     Point                             location;
  1857.     long                             reserved;
  1858. };
  1859. typedef struct VdigBufferRec            VdigBufferRec;
  1860.  
  1861. struct VdigBufferRecList {
  1862.     short                             count;
  1863.     MatrixRecordPtr                 matrix;
  1864.     RgnHandle                         mask;
  1865.     VdigBufferRec                     list[1];
  1866. };
  1867. typedef struct VdigBufferRecList        VdigBufferRecList;
  1868. typedef VdigBufferRecList *                VdigBufferRecListPtr;
  1869. typedef VdigBufferRecListPtr *            VdigBufferRecListHandle;
  1870. typedef CALLBACK_API( void , VdigIntProcPtr )(long flags, long refcon);
  1871. typedef STACK_UPP_TYPE(VdigIntProcPtr)                             VdigIntUPP;
  1872.  
  1873. struct VDCompressionList {
  1874.     CodecComponent                     codec;
  1875.     CodecType                         cType;
  1876.     Str63                             typeName;
  1877.     Str63                             name;
  1878.     long                             formatFlags;
  1879.     long                             compressFlags;
  1880.     long                             reserved;
  1881. };
  1882. typedef struct VDCompressionList        VDCompressionList;
  1883. typedef VDCompressionList *                VDCompressionListPtr;
  1884. typedef VDCompressionListPtr *            VDCompressionListHandle;
  1885. enum {
  1886.     dmaDepth1                    = 1,
  1887.     dmaDepth2                    = 2,
  1888.     dmaDepth4                    = 4,
  1889.     dmaDepth8                    = 8,
  1890.     dmaDepth16                    = 16,
  1891.     dmaDepth32                    = 32,
  1892.     dmaDepth2Gray                = 64,
  1893.     dmaDepth4Gray                = 128,
  1894.     dmaDepth8Gray                = 256
  1895. };
  1896.  
  1897. enum {
  1898.     kVDIGControlledFrameRate    = -1
  1899. };
  1900.  
  1901.  
  1902. EXTERN_API( VideoDigitizerError )
  1903. VDGetMaxSrcRect                    (VideoDigitizerComponent  ci,
  1904.                                  short                     inputStd,
  1905.                                  Rect *                    maxSrcRect)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x0001, 0x7000, 0xA82A);
  1906.  
  1907. EXTERN_API( VideoDigitizerError )
  1908. VDGetActiveSrcRect                (VideoDigitizerComponent  ci,
  1909.                                  short                     inputStd,
  1910.                                  Rect *                    activeSrcRect)                        FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A);
  1911.  
  1912. EXTERN_API( VideoDigitizerError )
  1913. VDSetDigitizerRect                (VideoDigitizerComponent  ci,
  1914.                                  Rect *                    digitizerRect)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  1915.  
  1916. EXTERN_API( VideoDigitizerError )
  1917. VDGetDigitizerRect                (VideoDigitizerComponent  ci,
  1918.                                  Rect *                    digitizerRect)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A);
  1919.  
  1920. EXTERN_API( VideoDigitizerError )
  1921. VDGetVBlankRect                    (VideoDigitizerComponent  ci,
  1922.                                  short                     inputStd,
  1923.                                  Rect *                    vBlankRect)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x0005, 0x7000, 0xA82A);
  1924.  
  1925. EXTERN_API( VideoDigitizerError )
  1926. VDGetMaskPixMap                    (VideoDigitizerComponent  ci,
  1927.                                  PixMapHandle             maskPixMap)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A);
  1928.  
  1929. EXTERN_API( VideoDigitizerError )
  1930. VDGetPlayThruDestination        (VideoDigitizerComponent  ci,
  1931.                                  PixMapHandle *            dest,
  1932.                                  Rect *                    destRect,
  1933.                                  MatrixRecord *            m,
  1934.                                  RgnHandle *            mask)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0008, 0x7000, 0xA82A);
  1935.  
  1936. EXTERN_API( VideoDigitizerError )
  1937. VDUseThisCLUT                    (VideoDigitizerComponent  ci,
  1938.                                  CTabHandle             colorTableHandle)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0009, 0x7000, 0xA82A);
  1939.  
  1940. EXTERN_API( VideoDigitizerError )
  1941. VDSetInputGammaValue            (VideoDigitizerComponent  ci,
  1942.                                  Fixed                     channel1,
  1943.                                  Fixed                     channel2,
  1944.                                  Fixed                     channel3)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x000A, 0x7000, 0xA82A);
  1945.  
  1946. EXTERN_API( VideoDigitizerError )
  1947. VDGetInputGammaValue            (VideoDigitizerComponent  ci,
  1948.                                  Fixed *                channel1,
  1949.                                  Fixed *                channel2,
  1950.                                  Fixed *                channel3)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x000B, 0x7000, 0xA82A);
  1951.  
  1952. EXTERN_API( VideoDigitizerError )
  1953. VDSetBrightness                    (VideoDigitizerComponent  ci,
  1954.                                  unsigned short *        brightness)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  1955.  
  1956. EXTERN_API( VideoDigitizerError )
  1957. VDGetBrightness                    (VideoDigitizerComponent  ci,
  1958.                                  unsigned short *        brightness)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  1959.  
  1960. EXTERN_API( VideoDigitizerError )
  1961. VDSetContrast                    (VideoDigitizerComponent  ci,
  1962.                                  unsigned short *        contrast)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A);
  1963.  
  1964. EXTERN_API( VideoDigitizerError )
  1965. VDSetHue                        (VideoDigitizerComponent  ci,
  1966.                                  unsigned short *        hue)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A);
  1967.  
  1968. EXTERN_API( VideoDigitizerError )
  1969. VDSetSharpness                    (VideoDigitizerComponent  ci,
  1970.                                  unsigned short *        sharpness)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A);
  1971.  
  1972. EXTERN_API( VideoDigitizerError )
  1973. VDSetSaturation                    (VideoDigitizerComponent  ci,
  1974.                                  unsigned short *        saturation)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A);
  1975.  
  1976. EXTERN_API( VideoDigitizerError )
  1977. VDGetContrast                    (VideoDigitizerComponent  ci,
  1978.                                  unsigned short *        contrast)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A);
  1979.  
  1980. EXTERN_API( VideoDigitizerError )
  1981. VDGetHue                        (VideoDigitizerComponent  ci,
  1982.                                  unsigned short *        hue)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  1983.  
  1984. EXTERN_API( VideoDigitizerError )
  1985. VDGetSharpness                    (VideoDigitizerComponent  ci,
  1986.                                  unsigned short *        sharpness)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  1987.  
  1988. EXTERN_API( VideoDigitizerError )
  1989. VDGetSaturation                    (VideoDigitizerComponent  ci,
  1990.                                  unsigned short *        saturation)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  1991.  
  1992. EXTERN_API( VideoDigitizerError )
  1993. VDGrabOneFrame                    (VideoDigitizerComponent  ci)                                FIVEWORDINLINE(0x2F3C, 0x0000, 0x0016, 0x7000, 0xA82A);
  1994.  
  1995. EXTERN_API( VideoDigitizerError )
  1996. VDGetMaxAuxBuffer                (VideoDigitizerComponent  ci,
  1997.                                  PixMapHandle *            pm,
  1998.                                  Rect *                    r)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A);
  1999.  
  2000. EXTERN_API( VideoDigitizerError )
  2001. VDGetDigitizerInfo                (VideoDigitizerComponent  ci,
  2002.                                  DigitizerInfo *        info)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  2003.  
  2004. EXTERN_API( VideoDigitizerError )
  2005. VDGetCurrentFlags                (VideoDigitizerComponent  ci,
  2006.                                  long *                    inputCurrentFlag,
  2007.                                  long *                    outputCurrentFlag)                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x001A, 0x7000, 0xA82A);
  2008.  
  2009. EXTERN_API( VideoDigitizerError )
  2010. VDSetKeyColor                    (VideoDigitizerComponent  ci,
  2011.                                  long                     index)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  2012.  
  2013. EXTERN_API( VideoDigitizerError )
  2014. VDGetKeyColor                    (VideoDigitizerComponent  ci,
  2015.                                  long *                    index)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A);
  2016.  
  2017. EXTERN_API( VideoDigitizerError )
  2018. VDAddKeyColor                    (VideoDigitizerComponent  ci,
  2019.                                  long *                    index)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A);
  2020.  
  2021. EXTERN_API( VideoDigitizerError )
  2022. VDGetNextKeyColor                (VideoDigitizerComponent  ci,
  2023.                                  long                     index)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  2024.  
  2025. EXTERN_API( VideoDigitizerError )
  2026. VDSetKeyColorRange                (VideoDigitizerComponent  ci,
  2027.                                  RGBColor *                minRGB,
  2028.                                  RGBColor *                maxRGB)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x001F, 0x7000, 0xA82A);
  2029.  
  2030. EXTERN_API( VideoDigitizerError )
  2031. VDGetKeyColorRange                (VideoDigitizerComponent  ci,
  2032.                                  RGBColor *                minRGB,
  2033.                                  RGBColor *                maxRGB)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A);
  2034.  
  2035. EXTERN_API( VideoDigitizerError )
  2036. VDSetDigitizerUserInterrupt        (VideoDigitizerComponent  ci,
  2037.                                  long                     flags,
  2038.                                  VdigIntUPP             userInterruptProc,
  2039.                                  long                     refcon)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0021, 0x7000, 0xA82A);
  2040.  
  2041. EXTERN_API( VideoDigitizerError )
  2042. VDSetInputColorSpaceMode        (VideoDigitizerComponent  ci,
  2043.                                  short                     colorSpaceMode)                        FIVEWORDINLINE(0x2F3C, 0x0002, 0x0022, 0x7000, 0xA82A);
  2044.  
  2045. EXTERN_API( VideoDigitizerError )
  2046. VDGetInputColorSpaceMode        (VideoDigitizerComponent  ci,
  2047.                                  short *                colorSpaceMode)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0023, 0x7000, 0xA82A);
  2048.  
  2049. EXTERN_API( VideoDigitizerError )
  2050. VDSetClipState                    (VideoDigitizerComponent  ci,
  2051.                                  short                     clipEnable)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x0024, 0x7000, 0xA82A);
  2052.  
  2053. EXTERN_API( VideoDigitizerError )
  2054. VDGetClipState                    (VideoDigitizerComponent  ci,
  2055.                                  short *                clipEnable)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  2056.  
  2057. EXTERN_API( VideoDigitizerError )
  2058. VDSetClipRgn                    (VideoDigitizerComponent  ci,
  2059.                                  RgnHandle                 clipRegion)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A);
  2060.  
  2061. EXTERN_API( VideoDigitizerError )
  2062. VDClearClipRgn                    (VideoDigitizerComponent  ci,
  2063.                                  RgnHandle                 clipRegion)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A);
  2064.  
  2065. EXTERN_API( VideoDigitizerError )
  2066. VDGetCLUTInUse                    (VideoDigitizerComponent  ci,
  2067.                                  CTabHandle *            colorTableHandle)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A);
  2068.  
  2069. EXTERN_API( VideoDigitizerError )
  2070. VDSetPLLFilterType                (VideoDigitizerComponent  ci,
  2071.                                  short                     pllType)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x0029, 0x7000, 0xA82A);
  2072.  
  2073. EXTERN_API( VideoDigitizerError )
  2074. VDGetPLLFilterType                (VideoDigitizerComponent  ci,
  2075.                                  short *                pllType)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A);
  2076.  
  2077. EXTERN_API( VideoDigitizerError )
  2078. VDGetMaskandValue                (VideoDigitizerComponent  ci,
  2079.                                  unsigned short         blendLevel,
  2080.                                  long *                    mask,
  2081.                                  long *                    value)                                FIVEWORDINLINE(0x2F3C, 0x000A, 0x002B, 0x7000, 0xA82A);
  2082.  
  2083. EXTERN_API( VideoDigitizerError )
  2084. VDSetMasterBlendLevel            (VideoDigitizerComponent  ci,
  2085.                                  unsigned short *        blendLevel)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A);
  2086.  
  2087. EXTERN_API( VideoDigitizerError )
  2088. VDSetPlayThruDestination        (VideoDigitizerComponent  ci,
  2089.                                  PixMapHandle             dest,
  2090.                                  RectPtr                 destRect,
  2091.                                  MatrixRecordPtr         m,
  2092.                                  RgnHandle                 mask)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x002D, 0x7000, 0xA82A);
  2093.  
  2094. EXTERN_API( VideoDigitizerError )
  2095. VDSetPlayThruOnOff                (VideoDigitizerComponent  ci,
  2096.                                  short                     state)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x002E, 0x7000, 0xA82A);
  2097.  
  2098. EXTERN_API( VideoDigitizerError )
  2099. VDSetFieldPreference            (VideoDigitizerComponent  ci,
  2100.                                  short                     fieldFlag)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x002F, 0x7000, 0xA82A);
  2101.  
  2102. EXTERN_API( VideoDigitizerError )
  2103. VDGetFieldPreference            (VideoDigitizerComponent  ci,
  2104.                                  short *                fieldFlag)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A);
  2105.  
  2106. EXTERN_API( VideoDigitizerError )
  2107. VDPreflightDestination            (VideoDigitizerComponent  ci,
  2108.                                  Rect *                    digitizerRect,
  2109.                                  PixMap **                dest,
  2110.                                  RectPtr                 destRect,
  2111.                                  MatrixRecordPtr         m)                                    FIVEWORDINLINE(0x2F3C, 0x0010, 0x0032, 0x7000, 0xA82A);
  2112.  
  2113. EXTERN_API( VideoDigitizerError )
  2114. VDPreflightGlobalRect            (VideoDigitizerComponent  ci,
  2115.                                  GrafPtr                 theWindow,
  2116.                                  Rect *                    globalRect)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0033, 0x7000, 0xA82A);
  2117.  
  2118. EXTERN_API( VideoDigitizerError )
  2119. VDSetPlayThruGlobalRect            (VideoDigitizerComponent  ci,
  2120.                                  GrafPtr                 theWindow,
  2121.                                  Rect *                    globalRect)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0034, 0x7000, 0xA82A);
  2122.  
  2123. EXTERN_API( VideoDigitizerError )
  2124. VDSetInputGammaRecord            (VideoDigitizerComponent  ci,
  2125.                                  VDGamRecPtr             inputGammaPtr)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0035, 0x7000, 0xA82A);
  2126.  
  2127. EXTERN_API( VideoDigitizerError )
  2128. VDGetInputGammaRecord            (VideoDigitizerComponent  ci,
  2129.                                  VDGamRecPtr *            inputGammaPtr)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0036, 0x7000, 0xA82A);
  2130.  
  2131. EXTERN_API( VideoDigitizerError )
  2132. VDSetBlackLevelValue            (VideoDigitizerComponent  ci,
  2133.                                  unsigned short *        blackLevel)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0037, 0x7000, 0xA82A);
  2134.  
  2135. EXTERN_API( VideoDigitizerError )
  2136. VDGetBlackLevelValue            (VideoDigitizerComponent  ci,
  2137.                                  unsigned short *        blackLevel)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0038, 0x7000, 0xA82A);
  2138.  
  2139. EXTERN_API( VideoDigitizerError )
  2140. VDSetWhiteLevelValue            (VideoDigitizerComponent  ci,
  2141.                                  unsigned short *        whiteLevel)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0039, 0x7000, 0xA82A);
  2142.  
  2143. EXTERN_API( VideoDigitizerError )
  2144. VDGetWhiteLevelValue            (VideoDigitizerComponent  ci,
  2145.                                  unsigned short *        whiteLevel)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x003A, 0x7000, 0xA82A);
  2146.  
  2147. EXTERN_API( VideoDigitizerError )
  2148. VDGetVideoDefaults                (VideoDigitizerComponent  ci,
  2149.                                  unsigned short *        blackLevel,
  2150.                                  unsigned short *        whiteLevel,
  2151.                                  unsigned short *        brightness,
  2152.                                  unsigned short *        hue,
  2153.                                  unsigned short *        saturation,
  2154.                                  unsigned short *        contrast,
  2155.                                  unsigned short *        sharpness)                            FIVEWORDINLINE(0x2F3C, 0x001C, 0x003B, 0x7000, 0xA82A);
  2156.  
  2157. EXTERN_API( VideoDigitizerError )
  2158. VDGetNumberOfInputs                (VideoDigitizerComponent  ci,
  2159.                                  short *                inputs)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x003C, 0x7000, 0xA82A);
  2160.  
  2161. EXTERN_API( VideoDigitizerError )
  2162. VDGetInputFormat                (VideoDigitizerComponent  ci,
  2163.                                  short                     input,
  2164.                                  short *                format)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x003D, 0x7000, 0xA82A);
  2165.  
  2166. EXTERN_API( VideoDigitizerError )
  2167. VDSetInput                        (VideoDigitizerComponent  ci,
  2168.                                  short                     input)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x003E, 0x7000, 0xA82A);
  2169.  
  2170. EXTERN_API( VideoDigitizerError )
  2171. VDGetInput                        (VideoDigitizerComponent  ci,
  2172.                                  short *                input)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x003F, 0x7000, 0xA82A);
  2173.  
  2174. EXTERN_API( VideoDigitizerError )
  2175. VDSetInputStandard                (VideoDigitizerComponent  ci,
  2176.                                  short                     inputStandard)                        FIVEWORDINLINE(0x2F3C, 0x0002, 0x0040, 0x7000, 0xA82A);
  2177.  
  2178. EXTERN_API( VideoDigitizerError )
  2179. VDSetupBuffers                    (VideoDigitizerComponent  ci,
  2180.                                  VdigBufferRecListHandle  bufferList)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0041, 0x7000, 0xA82A);
  2181.  
  2182. EXTERN_API( VideoDigitizerError )
  2183. VDGrabOneFrameAsync                (VideoDigitizerComponent  ci,
  2184.                                  short                     buffer)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0042, 0x7000, 0xA82A);
  2185.  
  2186. EXTERN_API( VideoDigitizerError )
  2187. VDDone                            (VideoDigitizerComponent  ci,
  2188.                                  short                     buffer)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0043, 0x7000, 0xA82A);
  2189.  
  2190. EXTERN_API( VideoDigitizerError )
  2191. VDSetCompression                (VideoDigitizerComponent  ci,
  2192.                                  OSType                 compressType,
  2193.                                  short                     depth,
  2194.                                  Rect *                    bounds,
  2195.                                  CodecQ                 spatialQuality,
  2196.                                  CodecQ                 temporalQuality,
  2197.                                  long                     keyFrameRate)                        FIVEWORDINLINE(0x2F3C, 0x0016, 0x0044, 0x7000, 0xA82A);
  2198.  
  2199. EXTERN_API( VideoDigitizerError )
  2200. VDCompressOneFrameAsync            (VideoDigitizerComponent  ci)                                FIVEWORDINLINE(0x2F3C, 0x0000, 0x0045, 0x7000, 0xA82A);
  2201.  
  2202. EXTERN_API( VideoDigitizerError )
  2203. VDCompressDone                    (VideoDigitizerComponent  ci,
  2204.                                  Boolean *                done,
  2205.                                  Ptr *                    theData,
  2206.                                  long *                    dataSize,
  2207.                                  UInt8 *                similarity,
  2208.                                  TimeRecord *            t)                                    FIVEWORDINLINE(0x2F3C, 0x0014, 0x0046, 0x7000, 0xA82A);
  2209.  
  2210. EXTERN_API( VideoDigitizerError )
  2211. VDReleaseCompressBuffer            (VideoDigitizerComponent  ci,
  2212.                                  Ptr                     bufferAddr)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0047, 0x7000, 0xA82A);
  2213.  
  2214. EXTERN_API( VideoDigitizerError )
  2215. VDGetImageDescription            (VideoDigitizerComponent  ci,
  2216.                                  ImageDescriptionHandle  desc)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0048, 0x7000, 0xA82A);
  2217.  
  2218. EXTERN_API( VideoDigitizerError )
  2219. VDResetCompressSequence            (VideoDigitizerComponent  ci)                                FIVEWORDINLINE(0x2F3C, 0x0000, 0x0049, 0x7000, 0xA82A);
  2220.  
  2221. EXTERN_API( VideoDigitizerError )
  2222. VDSetCompressionOnOff            (VideoDigitizerComponent  ci,
  2223.                                  Boolean                 state)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x004A, 0x7000, 0xA82A);
  2224.  
  2225. EXTERN_API( VideoDigitizerError )
  2226. VDGetCompressionTypes            (VideoDigitizerComponent  ci,
  2227.                                  VDCompressionListHandle  h)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x004B, 0x7000, 0xA82A);
  2228.  
  2229. EXTERN_API( VideoDigitizerError )
  2230. VDSetTimeBase                    (VideoDigitizerComponent  ci,
  2231.                                  TimeBase                 t)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x004C, 0x7000, 0xA82A);
  2232.  
  2233. EXTERN_API( VideoDigitizerError )
  2234. VDSetFrameRate                    (VideoDigitizerComponent  ci,
  2235.                                  Fixed                     framesPerSecond)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x004D, 0x7000, 0xA82A);
  2236.  
  2237. EXTERN_API( VideoDigitizerError )
  2238. VDGetDataRate                    (VideoDigitizerComponent  ci,
  2239.                                  long *                    milliSecPerFrame,
  2240.                                  Fixed *                framesPerSecond,
  2241.                                  long *                    bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x004E, 0x7000, 0xA82A);
  2242.  
  2243. EXTERN_API( VideoDigitizerError )
  2244. VDGetSoundInputDriver            (VideoDigitizerComponent  ci,
  2245.                                  Str255                 soundDriverName)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x004F, 0x7000, 0xA82A);
  2246.  
  2247. EXTERN_API( VideoDigitizerError )
  2248. VDGetDMADepths                    (VideoDigitizerComponent  ci,
  2249.                                  long *                    depthArray,
  2250.                                  long *                    preferredDepth)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0050, 0x7000, 0xA82A);
  2251.  
  2252. EXTERN_API( VideoDigitizerError )
  2253. VDGetPreferredTimeScale            (VideoDigitizerComponent  ci,
  2254.                                  TimeScale *            preferred)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0051, 0x7000, 0xA82A);
  2255.  
  2256. EXTERN_API( VideoDigitizerError )
  2257. VDReleaseAsyncBuffers            (VideoDigitizerComponent  ci)                                FIVEWORDINLINE(0x2F3C, 0x0000, 0x0052, 0x7000, 0xA82A);
  2258.  
  2259. /* 83 is reserved for compatibility reasons */
  2260. EXTERN_API( VideoDigitizerError )
  2261. VDSetDataRate                    (VideoDigitizerComponent  ci,
  2262.                                  long                     bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0054, 0x7000, 0xA82A);
  2263.  
  2264. EXTERN_API( VideoDigitizerError )
  2265. VDGetTimeCode                    (VideoDigitizerComponent  ci,
  2266.                                  TimeRecord *            atTime,
  2267.                                  void *                    timeCodeFormat,
  2268.                                  void *                    timeCodeTime)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0055, 0x7000, 0xA82A);
  2269.  
  2270. EXTERN_API( VideoDigitizerError )
  2271. VDUseSafeBuffers                (VideoDigitizerComponent  ci,
  2272.                                  Boolean                 useSafeBuffers)                        FIVEWORDINLINE(0x2F3C, 0x0002, 0x0056, 0x7000, 0xA82A);
  2273.  
  2274. EXTERN_API( VideoDigitizerError )
  2275. VDGetSoundInputSource            (VideoDigitizerComponent  ci,
  2276.                                  long                     videoInput,
  2277.                                  long *                    soundInput)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0057, 0x7000, 0xA82A);
  2278.  
  2279. EXTERN_API( VideoDigitizerError )
  2280. VDGetCompressionTime            (VideoDigitizerComponent  ci,
  2281.                                  OSType                 compressionType,
  2282.                                  short                     depth,
  2283.                                  Rect *                    srcRect,
  2284.                                  CodecQ *                spatialQuality,
  2285.                                  CodecQ *                temporalQuality,
  2286.                                  unsigned long *        compressTime)                        FIVEWORDINLINE(0x2F3C, 0x0016, 0x0058, 0x7000, 0xA82A);
  2287.  
  2288. EXTERN_API( VideoDigitizerError )
  2289. VDSetPreferredPacketSize        (VideoDigitizerComponent  ci,
  2290.                                  long                     preferredPacketSizeInBytes)            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0059, 0x7000, 0xA82A);
  2291.  
  2292. EXTERN_API( VideoDigitizerError )
  2293. VDSetPreferredImageDimensions    (VideoDigitizerComponent  ci,
  2294.                                  long                     width,
  2295.                                  long                     height)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x005A, 0x7000, 0xA82A);
  2296.  
  2297. EXTERN_API( VideoDigitizerError )
  2298. VDGetPreferredImageDimensions    (VideoDigitizerComponent  ci,
  2299.                                  long *                    width,
  2300.                                  long *                    height)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x005B, 0x7000, 0xA82A);
  2301.  
  2302. EXTERN_API( VideoDigitizerError )
  2303. VDGetInputName                    (VideoDigitizerComponent  ci,
  2304.                                  long                     videoInput,
  2305.                                  Str255                 name)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x005C, 0x7000, 0xA82A);
  2306.  
  2307. EXTERN_API( VideoDigitizerError )
  2308. VDSetDestinationPort            (VideoDigitizerComponent  ci,
  2309.                                  CGrafPtr                 destPort)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x005D, 0x7000, 0xA82A);
  2310.  
  2311.  
  2312.  
  2313. /*
  2314.     General Sequence Grab stuff
  2315. */
  2316.  
  2317. typedef ComponentInstance                 SeqGrabComponent;
  2318. typedef ComponentInstance                 SGChannel;
  2319. enum {
  2320.     SeqGrabComponentType        = FOUR_CHAR_CODE('barg'),
  2321.     SeqGrabChannelType            = FOUR_CHAR_CODE('sgch'),
  2322.     SeqGrabPanelType            = FOUR_CHAR_CODE('sgpn'),
  2323.     SeqGrabCompressionPanelType    = FOUR_CHAR_CODE('cmpr'),
  2324.     SeqGrabSourcePanelType        = FOUR_CHAR_CODE('sour')
  2325. };
  2326.  
  2327. enum {
  2328.     seqGrabToDisk                = 1,
  2329.     seqGrabToMemory                = 2,
  2330.     seqGrabDontUseTempMemory    = 4,
  2331.     seqGrabAppendToFile            = 8,
  2332.     seqGrabDontAddMovieResource    = 16,
  2333.     seqGrabDontMakeMovie        = 32,
  2334.     seqGrabPreExtendFile        = 64,
  2335.     seqGrabDataProcIsInterruptSafe = 128,
  2336.     seqGrabDataProcDoesOverlappingReads = 256
  2337. };
  2338.  
  2339. typedef unsigned long                     SeqGrabDataOutputEnum;
  2340. enum {
  2341.     seqGrabRecord                = 1,
  2342.     seqGrabPreview                = 2,
  2343.     seqGrabPlayDuringRecord        = 4
  2344. };
  2345.  
  2346. typedef unsigned long                     SeqGrabUsageEnum;
  2347. enum {
  2348.     seqGrabHasBounds            = 1,
  2349.     seqGrabHasVolume            = 2,
  2350.     seqGrabHasDiscreteSamples    = 4
  2351. };
  2352.  
  2353. typedef unsigned long                     SeqGrabChannelInfoEnum;
  2354.  
  2355. struct SGOutputRecord {
  2356.     long                             data[1];
  2357. };
  2358. typedef struct SGOutputRecord            SGOutputRecord;
  2359.  
  2360. typedef SGOutputRecord *                SGOutput;
  2361.  
  2362. struct SeqGrabFrameInfo {
  2363.     long                             frameOffset;
  2364.     long                             frameTime;
  2365.     long                             frameSize;
  2366.     SGChannel                         frameChannel;
  2367.     long                             frameRefCon;
  2368. };
  2369. typedef struct SeqGrabFrameInfo            SeqGrabFrameInfo;
  2370. typedef SeqGrabFrameInfo *                SeqGrabFrameInfoPtr;
  2371.  
  2372. struct SeqGrabExtendedFrameInfo {
  2373.     wide                             frameOffset;
  2374.     long                             frameTime;
  2375.     long                             frameSize;
  2376.     SGChannel                         frameChannel;
  2377.     long                             frameRefCon;
  2378.     SGOutput                         frameOutput;
  2379. };
  2380. typedef struct SeqGrabExtendedFrameInfo    SeqGrabExtendedFrameInfo;
  2381. typedef SeqGrabExtendedFrameInfo *        SeqGrabExtendedFrameInfoPtr;
  2382. enum {
  2383.     grabPictOffScreen            = 1,
  2384.     grabPictIgnoreClip            = 2,
  2385.     grabPictCurrentImage        = 4
  2386. };
  2387.  
  2388. enum {
  2389.     sgFlagControlledGrab        = (1 << 0),
  2390.     sgFlagAllowNonRGBPixMaps    = (1 << 1)
  2391. };
  2392.  
  2393. typedef CALLBACK_API( OSErr , SGDataProcPtr )(SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType, long refCon);
  2394. typedef STACK_UPP_TYPE(SGDataProcPtr)                             SGDataUPP;
  2395.  
  2396. struct SGDeviceName {
  2397.     Str63                             name;
  2398.     Handle                             icon;
  2399.     long                             flags;
  2400.     long                             refCon;
  2401.     long                             reserved;                    /* zero*/
  2402. };
  2403. typedef struct SGDeviceName                SGDeviceName;
  2404. enum {
  2405.     sgDeviceNameFlagDeviceUnavailable = (1 << 0)
  2406. };
  2407.  
  2408.  
  2409. struct SGDeviceListRecord {
  2410.     short                             count;
  2411.     short                             selectedIndex;
  2412.     long                             reserved;                    /* zero*/
  2413.     SGDeviceName                     entry[1];
  2414. };
  2415. typedef struct SGDeviceListRecord        SGDeviceListRecord;
  2416.  
  2417. typedef SGDeviceListRecord *            SGDeviceListPtr;
  2418. typedef SGDeviceListPtr *                SGDeviceList;
  2419. enum {
  2420.     sgDeviceListWithIcons        = (1 << 0),
  2421.     sgDeviceListDontCheckAvailability = (1 << 1)
  2422. };
  2423.  
  2424. enum {
  2425.     seqGrabWriteAppend            = 0,
  2426.     seqGrabWriteReserve            = 1,
  2427.     seqGrabWriteFill            = 2
  2428. };
  2429.  
  2430. enum {
  2431.     seqGrabUnpause                = 0,
  2432.     seqGrabPause                = 1,
  2433.     seqGrabPauseForMenu            = 3
  2434. };
  2435.  
  2436. enum {
  2437.     channelFlagDontOpenResFile    = 2,
  2438.     channelFlagHasDependency    = 4
  2439. };
  2440.  
  2441. typedef CALLBACK_API( Boolean , SGModalFilterProcPtr )(DialogPtr theDialog, const EventRecord *theEvent, short *itemHit, long refCon);
  2442. typedef STACK_UPP_TYPE(SGModalFilterProcPtr)                     SGModalFilterUPP;
  2443. enum {
  2444.     sgPanelFlagForPanel            = 1
  2445. };
  2446.  
  2447. enum {
  2448.     seqGrabSettingsPreviewOnly    = 1
  2449. };
  2450.  
  2451. enum {
  2452.     channelPlayNormal            = 0,
  2453.     channelPlayFast                = 1,
  2454.     channelPlayHighQuality        = 2,
  2455.     channelPlayAllData            = 4
  2456. };
  2457.  
  2458.  
  2459. EXTERN_API( ComponentResult )
  2460. SGInitialize                    (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0001, 0x7000, 0xA82A);
  2461.  
  2462. EXTERN_API( ComponentResult )
  2463. SGSetDataOutput                    (SeqGrabComponent         s,
  2464.                                  const FSSpec *            movieFile,
  2465.                                  long                     whereFlags)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A);
  2466.  
  2467. EXTERN_API( ComponentResult )
  2468. SGGetDataOutput                    (SeqGrabComponent         s,
  2469.                                  FSSpec *                movieFile,
  2470.                                  long *                    whereFlags)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0003, 0x7000, 0xA82A);
  2471.  
  2472. EXTERN_API( ComponentResult )
  2473. SGSetGWorld                        (SeqGrabComponent         s,
  2474.                                  CGrafPtr                 gp,
  2475.                                  GDHandle                 gd)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  2476.  
  2477. EXTERN_API( ComponentResult )
  2478. SGGetGWorld                        (SeqGrabComponent         s,
  2479.                                  CGrafPtr *                gp,
  2480.                                  GDHandle *                gd)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A);
  2481.  
  2482. EXTERN_API( ComponentResult )
  2483. SGNewChannel                    (SeqGrabComponent         s,
  2484.                                  OSType                 channelType,
  2485.                                  SGChannel *            ref)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0006, 0x7000, 0xA82A);
  2486.  
  2487. EXTERN_API( ComponentResult )
  2488. SGDisposeChannel                (SeqGrabComponent         s,
  2489.                                  SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  2490.  
  2491. EXTERN_API( ComponentResult )
  2492. SGStartPreview                    (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0010, 0x7000, 0xA82A);
  2493.  
  2494. EXTERN_API( ComponentResult )
  2495. SGStartRecord                    (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0011, 0x7000, 0xA82A);
  2496.  
  2497. EXTERN_API( ComponentResult )
  2498. SGIdle                            (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0012, 0x7000, 0xA82A);
  2499.  
  2500. EXTERN_API( ComponentResult )
  2501. SGStop                            (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0013, 0x7000, 0xA82A);
  2502.  
  2503. EXTERN_API( ComponentResult )
  2504. SGPause                            (SeqGrabComponent         s,
  2505.                                  Byte                     pause)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0014, 0x7000, 0xA82A);
  2506.  
  2507. EXTERN_API( ComponentResult )
  2508. SGPrepare                        (SeqGrabComponent         s,
  2509.                                  Boolean                 prepareForPreview,
  2510.                                  Boolean                 prepareForRecord)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  2511.  
  2512. EXTERN_API( ComponentResult )
  2513. SGRelease                        (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0016, 0x7000, 0xA82A);
  2514.  
  2515. EXTERN_API( Movie )
  2516. SGGetMovie                        (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0017, 0x7000, 0xA82A);
  2517.  
  2518. EXTERN_API( ComponentResult )
  2519. SGSetMaximumRecordTime            (SeqGrabComponent         s,
  2520.                                  unsigned long             ticks)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  2521.  
  2522. EXTERN_API( ComponentResult )
  2523. SGGetMaximumRecordTime            (SeqGrabComponent         s,
  2524.                                  unsigned long *        ticks)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  2525.  
  2526. EXTERN_API( ComponentResult )
  2527. SGGetStorageSpaceRemaining        (SeqGrabComponent         s,
  2528.                                  unsigned long *        bytes)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  2529.  
  2530. EXTERN_API( ComponentResult )
  2531. SGGetTimeRemaining                (SeqGrabComponent         s,
  2532.                                  long *                    ticksLeft)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  2533.  
  2534. EXTERN_API( ComponentResult )
  2535. SGGrabPict                        (SeqGrabComponent         s,
  2536.                                  PicHandle *            p,
  2537.                                  const Rect *            bounds,
  2538.                                  short                     offscreenDepth,
  2539.                                  long                     grabPictFlags)                        FIVEWORDINLINE(0x2F3C, 0x000E, 0x001C, 0x7000, 0xA82A);
  2540.  
  2541. EXTERN_API( ComponentResult )
  2542. SGGetLastMovieResID                (SeqGrabComponent         s,
  2543.                                  short *                resID)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A);
  2544.  
  2545. EXTERN_API( ComponentResult )
  2546. SGSetFlags                        (SeqGrabComponent         s,
  2547.                                  long                     sgFlags)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  2548.  
  2549. EXTERN_API( ComponentResult )
  2550. SGGetFlags                        (SeqGrabComponent         s,
  2551.                                  long *                    sgFlags)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A);
  2552.  
  2553. EXTERN_API( ComponentResult )
  2554. SGSetDataProc                    (SeqGrabComponent         s,
  2555.                                  SGDataUPP                 proc,
  2556.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A);
  2557.  
  2558. EXTERN_API( ComponentResult )
  2559. SGNewChannelFromComponent        (SeqGrabComponent         s,
  2560.                                  SGChannel *            newChannel,
  2561.                                  Component                 sgChannelComponent)                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0021, 0x7000, 0xA82A);
  2562.  
  2563. EXTERN_API( ComponentResult )
  2564. SGDisposeDeviceList                (SeqGrabComponent         s,
  2565.                                  SGDeviceList             list)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0022, 0x7000, 0xA82A);
  2566.  
  2567. EXTERN_API( ComponentResult )
  2568. SGAppendDeviceListToMenu        (SeqGrabComponent         s,
  2569.                                  SGDeviceList             list,
  2570.                                  MenuHandle             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0023, 0x7000, 0xA82A);
  2571.  
  2572. EXTERN_API( ComponentResult )
  2573. SGSetSettings                    (SeqGrabComponent         s,
  2574.                                  UserData                 ud,
  2575.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0024, 0x7000, 0xA82A);
  2576.  
  2577. EXTERN_API( ComponentResult )
  2578. SGGetSettings                    (SeqGrabComponent         s,
  2579.                                  UserData *                ud,
  2580.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0025, 0x7000, 0xA82A);
  2581.  
  2582. EXTERN_API( ComponentResult )
  2583. SGGetIndChannel                    (SeqGrabComponent         s,
  2584.                                  short                     index,
  2585.                                  SGChannel *            ref,
  2586.                                  OSType *                chanType)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x0026, 0x7000, 0xA82A);
  2587.  
  2588. EXTERN_API( ComponentResult )
  2589. SGUpdate                        (SeqGrabComponent         s,
  2590.                                  RgnHandle                 updateRgn)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A);
  2591.  
  2592. EXTERN_API( ComponentResult )
  2593. SGGetPause                        (SeqGrabComponent         s,
  2594.                                  Byte *                    paused)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A);
  2595.  
  2596. typedef const Component *                ConstComponentListPtr;
  2597. EXTERN_API( ComponentResult )
  2598. SGSettingsDialog                (SeqGrabComponent         s,
  2599.                                  SGChannel                 c,
  2600.                                  short                     numPanels,
  2601.                                  ConstComponentListPtr     panelList,
  2602.                                  long                     flags,
  2603.                                  SGModalFilterUPP         proc,
  2604.                                  long                     procRefNum)                            FIVEWORDINLINE(0x2F3C, 0x0016, 0x0029, 0x7000, 0xA82A);
  2605.  
  2606. EXTERN_API( ComponentResult )
  2607. SGGetAlignmentProc                (SeqGrabComponent         s,
  2608.                                  ICMAlignmentProcRecordPtr  alignmentProc)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A);
  2609.  
  2610. EXTERN_API( ComponentResult )
  2611. SGSetChannelSettings            (SeqGrabComponent         s,
  2612.                                  SGChannel                 c,
  2613.                                  UserData                 ud,
  2614.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x002B, 0x7000, 0xA82A);
  2615.  
  2616. EXTERN_API( ComponentResult )
  2617. SGGetChannelSettings            (SeqGrabComponent         s,
  2618.                                  SGChannel                 c,
  2619.                                  UserData *                ud,
  2620.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x002C, 0x7000, 0xA82A);
  2621.  
  2622. EXTERN_API( ComponentResult )
  2623. SGGetMode                        (SeqGrabComponent         s,
  2624.                                  Boolean *                previewMode,
  2625.                                  Boolean *                recordMode)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x002D, 0x7000, 0xA82A);
  2626.  
  2627. EXTERN_API( ComponentResult )
  2628. SGSetDataRef                    (SeqGrabComponent         s,
  2629.                                  Handle                 dataRef,
  2630.                                  OSType                 dataRefType,
  2631.                                  long                     whereFlags)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x002E, 0x7000, 0xA82A);
  2632.  
  2633. EXTERN_API( ComponentResult )
  2634. SGGetDataRef                    (SeqGrabComponent         s,
  2635.                                  Handle *                dataRef,
  2636.                                  OSType *                dataRefType,
  2637.                                  long *                    whereFlags)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x002F, 0x7000, 0xA82A);
  2638.  
  2639. EXTERN_API( ComponentResult )
  2640. SGNewOutput                        (SeqGrabComponent         s,
  2641.                                  Handle                 dataRef,
  2642.                                  OSType                 dataRefType,
  2643.                                  long                     whereFlags,
  2644.                                  SGOutput *                sgOut)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0030, 0x7000, 0xA82A);
  2645.  
  2646. EXTERN_API( ComponentResult )
  2647. SGDisposeOutput                    (SeqGrabComponent         s,
  2648.                                  SGOutput                 sgOut)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0031, 0x7000, 0xA82A);
  2649.  
  2650. EXTERN_API( ComponentResult )
  2651. SGSetOutputFlags                (SeqGrabComponent         s,
  2652.                                  SGOutput                 sgOut,
  2653.                                  long                     whereFlags)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0032, 0x7000, 0xA82A);
  2654.  
  2655. EXTERN_API( ComponentResult )
  2656. SGSetChannelOutput                (SeqGrabComponent         s,
  2657.                                  SGChannel                 c,
  2658.                                  SGOutput                 sgOut)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0033, 0x7000, 0xA82A);
  2659.  
  2660. EXTERN_API( ComponentResult )
  2661. SGGetDataOutputStorageSpaceRemaining (SeqGrabComponent     s,
  2662.                                  SGOutput                 sgOut,
  2663.                                  unsigned long *        space)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0034, 0x7000, 0xA82A);
  2664.  
  2665. EXTERN_API( ComponentResult )
  2666. SGHandleUpdateEvent                (SeqGrabComponent         s,
  2667.                                  const EventRecord *    event,
  2668.                                  Boolean *                handled)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0035, 0x7000, 0xA82A);
  2669.  
  2670. EXTERN_API( ComponentResult )
  2671. SGSetOutputNextOutput            (SeqGrabComponent         s,
  2672.                                  SGOutput                 sgOut,
  2673.                                  SGOutput                 nextOut)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0036, 0x7000, 0xA82A);
  2674.  
  2675. EXTERN_API( ComponentResult )
  2676. SGGetOutputNextOutput            (SeqGrabComponent         s,
  2677.                                  SGOutput                 sgOut,
  2678.                                  SGOutput *                nextOut)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0037, 0x7000, 0xA82A);
  2679.  
  2680. EXTERN_API( ComponentResult )
  2681. SGSetOutputMaximumOffset        (SeqGrabComponent         s,
  2682.                                  SGOutput                 sgOut,
  2683.                                  const wide *            maxOffset)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0038, 0x7000, 0xA82A);
  2684.  
  2685. EXTERN_API( ComponentResult )
  2686. SGGetOutputMaximumOffset        (SeqGrabComponent         s,
  2687.                                  SGOutput                 sgOut,
  2688.                                  wide *                    maxOffset)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0039, 0x7000, 0xA82A);
  2689.  
  2690. EXTERN_API( ComponentResult )
  2691. SGGetOutputDataReference        (SeqGrabComponent         s,
  2692.                                  SGOutput                 sgOut,
  2693.                                  Handle *                dataRef,
  2694.                                  OSType *                dataRefType)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x003A, 0x7000, 0xA82A);
  2695.  
  2696. EXTERN_API( ComponentResult )
  2697. SGWriteExtendedMovieData        (SeqGrabComponent         s,
  2698.                                  SGChannel                 c,
  2699.                                  Ptr                     p,
  2700.                                  long                     len,
  2701.                                  wide *                    offset,
  2702.                                  SGOutput *                sgOut)                                FIVEWORDINLINE(0x2F3C, 0x0014, 0x003B, 0x7000, 0xA82A);
  2703.  
  2704. EXTERN_API( ComponentResult )
  2705. SGGetStorageSpaceRemaining64    (SeqGrabComponent         s,
  2706.                                  wide *                    bytes)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x003C, 0x7000, 0xA82A);
  2707.  
  2708. EXTERN_API( ComponentResult )
  2709. SGGetDataOutputStorageSpaceRemaining64 (SeqGrabComponent  s,
  2710.                                  SGOutput                 sgOut,
  2711.                                  wide *                    space)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x003D, 0x7000, 0xA82A);
  2712.  
  2713. /*
  2714.     calls from Channel to seqGrab
  2715. */
  2716. EXTERN_API( ComponentResult )
  2717. SGWriteMovieData                (SeqGrabComponent         s,
  2718.                                  SGChannel                 c,
  2719.                                  Ptr                     p,
  2720.                                  long                     len,
  2721.                                  long *                    offset)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0100, 0x7000, 0xA82A);
  2722.  
  2723. EXTERN_API( ComponentResult )
  2724. SGAddFrameReference                (SeqGrabComponent         s,
  2725.                                  SeqGrabFrameInfoPtr     frameInfo)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  2726.  
  2727. EXTERN_API( ComponentResult )
  2728. SGGetNextFrameReference            (SeqGrabComponent         s,
  2729.                                  SeqGrabFrameInfoPtr     frameInfo,
  2730.                                  TimeValue *            frameDuration,
  2731.                                  long *                    frameNumber)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0102, 0x7000, 0xA82A);
  2732.  
  2733. EXTERN_API( ComponentResult )
  2734. SGGetTimeBase                    (SeqGrabComponent         s,
  2735.                                  TimeBase *                tb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  2736.  
  2737. EXTERN_API( ComponentResult )
  2738. SGSortDeviceList                (SeqGrabComponent         s,
  2739.                                  SGDeviceList             list)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  2740.  
  2741. EXTERN_API( ComponentResult )
  2742. SGAddMovieData                    (SeqGrabComponent         s,
  2743.                                  SGChannel                 c,
  2744.                                  Ptr                     p,
  2745.                                  long                     len,
  2746.                                  long *                    offset,
  2747.                                  long                     chRefCon,
  2748.                                  TimeValue                 time,
  2749.                                  short                     writeType)                            FIVEWORDINLINE(0x2F3C, 0x001A, 0x0105, 0x7000, 0xA82A);
  2750.  
  2751. EXTERN_API( ComponentResult )
  2752. SGChangedSource                    (SeqGrabComponent         s,
  2753.                                  SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0106, 0x7000, 0xA82A);
  2754.  
  2755. EXTERN_API( ComponentResult )
  2756. SGAddExtendedFrameReference        (SeqGrabComponent         s,
  2757.                                  SeqGrabExtendedFrameInfoPtr  frameInfo)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A);
  2758.  
  2759. EXTERN_API( ComponentResult )
  2760. SGGetNextExtendedFrameReference    (SeqGrabComponent         s,
  2761.                                  SeqGrabExtendedFrameInfoPtr  frameInfo,
  2762.                                  TimeValue *            frameDuration,
  2763.                                  long *                    frameNumber)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0108, 0x7000, 0xA82A);
  2764.  
  2765. EXTERN_API( ComponentResult )
  2766. SGAddExtendedMovieData            (SeqGrabComponent         s,
  2767.                                  SGChannel                 c,
  2768.                                  Ptr                     p,
  2769.                                  long                     len,
  2770.                                  wide *                    offset,
  2771.                                  long                     chRefCon,
  2772.                                  TimeValue                 time,
  2773.                                  short                     writeType,
  2774.                                  SGOutput *                whichOutput)                        FIVEWORDINLINE(0x2F3C, 0x001E, 0x0109, 0x7000, 0xA82A);
  2775.  
  2776. EXTERN_API( ComponentResult )
  2777. SGAddOutputDataRefToMedia        (SeqGrabComponent         s,
  2778.                                  SGOutput                 sgOut,
  2779.                                  Media                     theMedia,
  2780.                                  SampleDescriptionHandle  desc)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x010A, 0x7000, 0xA82A);
  2781.  
  2782.  
  2783.  
  2784. /*** Sequence Grab CHANNEL Component Stuff ***/
  2785.  
  2786. EXTERN_API( ComponentResult )
  2787. SGSetChannelUsage                (SGChannel                 c,
  2788.                                  long                     usage)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0080, 0x7000, 0xA82A);
  2789.  
  2790. EXTERN_API( ComponentResult )
  2791. SGGetChannelUsage                (SGChannel                 c,
  2792.                                  long *                    usage)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0081, 0x7000, 0xA82A);
  2793.  
  2794. EXTERN_API( ComponentResult )
  2795. SGSetChannelBounds                (SGChannel                 c,
  2796.                                  const Rect *            bounds)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0082, 0x7000, 0xA82A);
  2797.  
  2798. EXTERN_API( ComponentResult )
  2799. SGGetChannelBounds                (SGChannel                 c,
  2800.                                  Rect *                    bounds)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0083, 0x7000, 0xA82A);
  2801.  
  2802. EXTERN_API( ComponentResult )
  2803. SGSetChannelVolume                (SGChannel                 c,
  2804.                                  short                     volume)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0084, 0x7000, 0xA82A);
  2805.  
  2806. EXTERN_API( ComponentResult )
  2807. SGGetChannelVolume                (SGChannel                 c,
  2808.                                  short *                volume)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0085, 0x7000, 0xA82A);
  2809.  
  2810. EXTERN_API( ComponentResult )
  2811. SGGetChannelInfo                (SGChannel                 c,
  2812.                                  long *                    channelInfo)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0086, 0x7000, 0xA82A);
  2813.  
  2814. EXTERN_API( ComponentResult )
  2815. SGSetChannelPlayFlags            (SGChannel                 c,
  2816.                                  long                     playFlags)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0087, 0x7000, 0xA82A);
  2817.  
  2818. EXTERN_API( ComponentResult )
  2819. SGGetChannelPlayFlags            (SGChannel                 c,
  2820.                                  long *                    playFlags)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0088, 0x7000, 0xA82A);
  2821.  
  2822. EXTERN_API( ComponentResult )
  2823. SGSetChannelMaxFrames            (SGChannel                 c,
  2824.                                  long                     frameCount)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0089, 0x7000, 0xA82A);
  2825.  
  2826. EXTERN_API( ComponentResult )
  2827. SGGetChannelMaxFrames            (SGChannel                 c,
  2828.                                  long *                    frameCount)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x008A, 0x7000, 0xA82A);
  2829.  
  2830. EXTERN_API( ComponentResult )
  2831. SGSetChannelRefCon                (SGChannel                 c,
  2832.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x008B, 0x7000, 0xA82A);
  2833.  
  2834. EXTERN_API( ComponentResult )
  2835. SGSetChannelClip                (SGChannel                 c,
  2836.                                  RgnHandle                 theClip)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x008C, 0x7000, 0xA82A);
  2837.  
  2838. EXTERN_API( ComponentResult )
  2839. SGGetChannelClip                (SGChannel                 c,
  2840.                                  RgnHandle *            theClip)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x008D, 0x7000, 0xA82A);
  2841.  
  2842. EXTERN_API( ComponentResult )
  2843. SGGetChannelSampleDescription    (SGChannel                 c,
  2844.                                  Handle                 sampleDesc)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x008E, 0x7000, 0xA82A);
  2845.  
  2846. EXTERN_API( ComponentResult )
  2847. SGGetChannelDeviceList            (SGChannel                 c,
  2848.                                  long                     selectionFlags,
  2849.                                  SGDeviceList *            list)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x008F, 0x7000, 0xA82A);
  2850.  
  2851. EXTERN_API( ComponentResult )
  2852. SGSetChannelDevice                (SGChannel                 c,
  2853.                                  StringPtr                 name)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0090, 0x7000, 0xA82A);
  2854.  
  2855. EXTERN_API( ComponentResult )
  2856. SGSetChannelMatrix                (SGChannel                 c,
  2857.                                  const MatrixRecord *    m)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0091, 0x7000, 0xA82A);
  2858.  
  2859. EXTERN_API( ComponentResult )
  2860. SGGetChannelMatrix                (SGChannel                 c,
  2861.                                  MatrixRecord *            m)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0092, 0x7000, 0xA82A);
  2862.  
  2863. EXTERN_API( ComponentResult )
  2864. SGGetChannelTimeScale            (SGChannel                 c,
  2865.                                  TimeScale *            scale)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0093, 0x7000, 0xA82A);
  2866.  
  2867. EXTERN_API( ComponentResult )
  2868. SGChannelPutPicture                (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0094, 0x7000, 0xA82A);
  2869.  
  2870. EXTERN_API( ComponentResult )
  2871. SGChannelSetRequestedDataRate    (SGChannel                 c,
  2872.                                  long                     bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0095, 0x7000, 0xA82A);
  2873.  
  2874. EXTERN_API( ComponentResult )
  2875. SGChannelGetRequestedDataRate    (SGChannel                 c,
  2876.                                  long *                    bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0096, 0x7000, 0xA82A);
  2877.  
  2878. EXTERN_API( ComponentResult )
  2879. SGChannelSetDataSourceName        (SGChannel                 c,
  2880.                                  ConstStr255Param         name,
  2881.                                  ScriptCode             scriptTag)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x0097, 0x7000, 0xA82A);
  2882.  
  2883. EXTERN_API( ComponentResult )
  2884. SGChannelGetDataSourceName        (SGChannel                 c,
  2885.                                  Str255                 name,
  2886.                                  ScriptCode *            scriptTag)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0098, 0x7000, 0xA82A);
  2887.  
  2888. EXTERN_API( ComponentResult )
  2889. SGChannelSetCodecSettings        (SGChannel                 c,
  2890.                                  Handle                 settings)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0099, 0x7000, 0xA82A);
  2891.  
  2892. EXTERN_API( ComponentResult )
  2893. SGChannelGetCodecSettings        (SGChannel                 c,
  2894.                                  Handle *                settings)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x009A, 0x7000, 0xA82A);
  2895.  
  2896. EXTERN_API( ComponentResult )
  2897. SGGetChannelTimeBase            (SGChannel                 c,
  2898.                                  TimeBase *                tb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x009B, 0x7000, 0xA82A);
  2899.  
  2900. /*
  2901.     calls from seqGrab to Channel
  2902. */
  2903. EXTERN_API( ComponentResult )
  2904. SGInitChannel                    (SGChannel                 c,
  2905.                                  SeqGrabComponent         owner)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0180, 0x7000, 0xA82A);
  2906.  
  2907. EXTERN_API( ComponentResult )
  2908. SGWriteSamples                    (SGChannel                 c,
  2909.                                  Movie                     m,
  2910.                                  AliasHandle             theFile)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0181, 0x7000, 0xA82A);
  2911.  
  2912. EXTERN_API( ComponentResult )
  2913. SGGetDataRate                    (SGChannel                 c,
  2914.                                  long *                    bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0182, 0x7000, 0xA82A);
  2915.  
  2916. EXTERN_API( ComponentResult )
  2917. SGAlignChannelRect                (SGChannel                 c,
  2918.                                  Rect *                    r)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0183, 0x7000, 0xA82A);
  2919.  
  2920. /*
  2921.     Dorky dialog panel calls
  2922. */
  2923. EXTERN_API( ComponentResult )
  2924. SGPanelGetDitl                    (SeqGrabComponent         s,
  2925.                                  Handle *                ditl)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0200, 0x7000, 0xA82A);
  2926.  
  2927. EXTERN_API( ComponentResult )
  2928. SGPanelGetTitle                    (SeqGrabComponent         s,
  2929.                                  Str255                 title)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0201, 0x7000, 0xA82A);
  2930.  
  2931. EXTERN_API( ComponentResult )
  2932. SGPanelCanRun                    (SeqGrabComponent         s,
  2933.                                  SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0202, 0x7000, 0xA82A);
  2934.  
  2935. EXTERN_API( ComponentResult )
  2936. SGPanelInstall                    (SeqGrabComponent         s,
  2937.                                  SGChannel                 c,
  2938.                                  DialogPtr                 d,
  2939.                                  short                     itemOffset)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x0203, 0x7000, 0xA82A);
  2940.  
  2941. EXTERN_API( ComponentResult )
  2942. SGPanelEvent                    (SeqGrabComponent         s,
  2943.                                  SGChannel                 c,
  2944.                                  DialogPtr                 d,
  2945.                                  short                     itemOffset,
  2946.                                  const EventRecord *    theEvent,
  2947.                                  short *                itemHit,
  2948.                                  Boolean *                handled)                            FIVEWORDINLINE(0x2F3C, 0x0016, 0x0204, 0x7000, 0xA82A);
  2949.  
  2950. EXTERN_API( ComponentResult )
  2951. SGPanelItem                        (SeqGrabComponent         s,
  2952.                                  SGChannel                 c,
  2953.                                  DialogPtr                 d,
  2954.                                  short                     itemOffset,
  2955.                                  short                     itemNum)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0205, 0x7000, 0xA82A);
  2956.  
  2957. EXTERN_API( ComponentResult )
  2958. SGPanelRemove                    (SeqGrabComponent         s,
  2959.                                  SGChannel                 c,
  2960.                                  DialogPtr                 d,
  2961.                                  short                     itemOffset)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x0206, 0x7000, 0xA82A);
  2962.  
  2963. EXTERN_API( ComponentResult )
  2964. SGPanelSetGrabber                (SeqGrabComponent         s,
  2965.                                  SeqGrabComponent         sg)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0207, 0x7000, 0xA82A);
  2966.  
  2967. EXTERN_API( ComponentResult )
  2968. SGPanelSetResFile                (SeqGrabComponent         s,
  2969.                                  short                     resRef)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0208, 0x7000, 0xA82A);
  2970.  
  2971. EXTERN_API( ComponentResult )
  2972. SGPanelGetSettings                (SeqGrabComponent         s,
  2973.                                  SGChannel                 c,
  2974.                                  UserData *                ud,
  2975.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0209, 0x7000, 0xA82A);
  2976.  
  2977. EXTERN_API( ComponentResult )
  2978. SGPanelSetSettings                (SeqGrabComponent         s,
  2979.                                  SGChannel                 c,
  2980.                                  UserData                 ud,
  2981.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x020A, 0x7000, 0xA82A);
  2982.  
  2983. EXTERN_API( ComponentResult )
  2984. SGPanelValidateInput            (SeqGrabComponent         s,
  2985.                                  Boolean *                ok)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x020B, 0x7000, 0xA82A);
  2986.  
  2987. EXTERN_API( ComponentResult )
  2988. SGPanelSetEventFilter            (SeqGrabComponent         s,
  2989.                                  SGModalFilterUPP         proc,
  2990.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x020C, 0x7000, 0xA82A);
  2991.  
  2992.  
  2993. /*** Sequence Grab VIDEO CHANNEL Component Stuff ***/
  2994. /*
  2995.     Video stuff
  2996. */
  2997.  
  2998. struct SGCompressInfo {
  2999.     Ptr                             buffer;
  3000.     unsigned long                     bufferSize;
  3001.     UInt8                             similarity;
  3002.     UInt8                             reserved;
  3003. };
  3004. typedef struct SGCompressInfo            SGCompressInfo;
  3005. typedef CALLBACK_API( ComponentResult , SGGrabBottleProcPtr )(SGChannel c, short bufferNum, long refCon);
  3006. typedef CALLBACK_API( ComponentResult , SGGrabCompleteBottleProcPtr )(SGChannel c, short bufferNum, Boolean *done, long refCon);
  3007. typedef CALLBACK_API( ComponentResult , SGDisplayBottleProcPtr )(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  3008. typedef CALLBACK_API( ComponentResult , SGCompressBottleProcPtr )(SGChannel c, short bufferNum, long refCon);
  3009. typedef CALLBACK_API( ComponentResult , SGCompressCompleteBottleProcPtr )(SGChannel c, short bufferNum, Boolean *done, SGCompressInfo *ci, long refCon);
  3010. typedef CALLBACK_API( ComponentResult , SGAddFrameBottleProcPtr )(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo *ci, long refCon);
  3011. typedef CALLBACK_API( ComponentResult , SGTransferFrameBottleProcPtr )(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  3012. typedef CALLBACK_API( ComponentResult , SGGrabCompressCompleteBottleProcPtr )(SGChannel c, Boolean *done, SGCompressInfo *ci, TimeRecord *t, long refCon);
  3013. typedef CALLBACK_API( ComponentResult , SGDisplayCompressBottleProcPtr )(SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  3014. typedef STACK_UPP_TYPE(SGGrabBottleProcPtr)                     SGGrabBottleUPP;
  3015. typedef STACK_UPP_TYPE(SGGrabCompleteBottleProcPtr)             SGGrabCompleteBottleUPP;
  3016. typedef STACK_UPP_TYPE(SGDisplayBottleProcPtr)                     SGDisplayBottleUPP;
  3017. typedef STACK_UPP_TYPE(SGCompressBottleProcPtr)                 SGCompressBottleUPP;
  3018. typedef STACK_UPP_TYPE(SGCompressCompleteBottleProcPtr)         SGCompressCompleteBottleUPP;
  3019. typedef STACK_UPP_TYPE(SGAddFrameBottleProcPtr)                 SGAddFrameBottleUPP;
  3020. typedef STACK_UPP_TYPE(SGTransferFrameBottleProcPtr)             SGTransferFrameBottleUPP;
  3021. typedef STACK_UPP_TYPE(SGGrabCompressCompleteBottleProcPtr)     SGGrabCompressCompleteBottleUPP;
  3022. typedef STACK_UPP_TYPE(SGDisplayCompressBottleProcPtr)             SGDisplayCompressBottleUPP;
  3023.  
  3024. struct VideoBottles {
  3025.     short                             procCount;
  3026.     SGGrabBottleUPP                 grabProc;
  3027.     SGGrabCompleteBottleUPP         grabCompleteProc;
  3028.     SGDisplayBottleUPP                 displayProc;
  3029.     SGCompressBottleUPP             compressProc;
  3030.     SGCompressCompleteBottleUPP     compressCompleteProc;
  3031.     SGAddFrameBottleUPP             addFrameProc;
  3032.     SGTransferFrameBottleUPP         transferFrameProc;
  3033.     SGGrabCompressCompleteBottleUPP  grabCompressCompleteProc;
  3034.     SGDisplayCompressBottleUPP         displayCompressProc;
  3035. };
  3036. typedef struct VideoBottles                VideoBottles;
  3037. EXTERN_API( ComponentResult )
  3038. SGGetSrcVideoBounds                (SGChannel                 c,
  3039.                                  Rect *                    r)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  3040.  
  3041. EXTERN_API( ComponentResult )
  3042. SGSetVideoRect                    (SGChannel                 c,
  3043.                                  const Rect *            r)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  3044.  
  3045. EXTERN_API( ComponentResult )
  3046. SGGetVideoRect                    (SGChannel                 c,
  3047.                                  Rect *                    r)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  3048.  
  3049. EXTERN_API( ComponentResult )
  3050. SGGetVideoCompressorType        (SGChannel                 c,
  3051.                                  OSType *                compressorType)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  3052.  
  3053. EXTERN_API( ComponentResult )
  3054. SGSetVideoCompressorType        (SGChannel                 c,
  3055.                                  OSType                 compressorType)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  3056.  
  3057. EXTERN_API( ComponentResult )
  3058. SGSetVideoCompressor            (SGChannel                 c,
  3059.                                  short                     depth,
  3060.                                  CompressorComponent     compressor,
  3061.                                  CodecQ                 spatialQuality,
  3062.                                  CodecQ                 temporalQuality,
  3063.                                  long                     keyFrameRate)                        FIVEWORDINLINE(0x2F3C, 0x0012, 0x0105, 0x7000, 0xA82A);
  3064.  
  3065. EXTERN_API( ComponentResult )
  3066. SGGetVideoCompressor            (SGChannel                 c,
  3067.                                  short *                depth,
  3068.                                  CompressorComponent *    compressor,
  3069.                                  CodecQ *                spatialQuality,
  3070.                                  CodecQ *                temporalQuality,
  3071.                                  long *                    keyFrameRate)                        FIVEWORDINLINE(0x2F3C, 0x0014, 0x0106, 0x7000, 0xA82A);
  3072.  
  3073. EXTERN_API( ComponentInstance )
  3074. SGGetVideoDigitizerComponent    (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0107, 0x7000, 0xA82A);
  3075.  
  3076. EXTERN_API( ComponentResult )
  3077. SGSetVideoDigitizerComponent    (SGChannel                 c,
  3078.                                  ComponentInstance         vdig)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A);
  3079.  
  3080. EXTERN_API( ComponentResult )
  3081. SGVideoDigitizerChanged            (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0109, 0x7000, 0xA82A);
  3082.  
  3083. EXTERN_API( ComponentResult )
  3084. SGSetVideoBottlenecks            (SGChannel                 c,
  3085.                                  VideoBottles *            vb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  3086.  
  3087. EXTERN_API( ComponentResult )
  3088. SGGetVideoBottlenecks            (SGChannel                 c,
  3089.                                  VideoBottles *            vb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x010B, 0x7000, 0xA82A);
  3090.  
  3091. EXTERN_API( ComponentResult )
  3092. SGGrabFrame                        (SGChannel                 c,
  3093.                                  short                     bufferNum)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x010C, 0x7000, 0xA82A);
  3094.  
  3095. EXTERN_API( ComponentResult )
  3096. SGGrabFrameComplete                (SGChannel                 c,
  3097.                                  short                     bufferNum,
  3098.                                  Boolean *                done)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x010D, 0x7000, 0xA82A);
  3099.  
  3100. EXTERN_API( ComponentResult )
  3101. SGDisplayFrame                    (SGChannel                 c,
  3102.                                  short                     bufferNum,
  3103.                                  const MatrixRecord *    mp,
  3104.                                  RgnHandle                 clipRgn)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x010E, 0x7000, 0xA82A);
  3105.  
  3106. EXTERN_API( ComponentResult )
  3107. SGCompressFrame                    (SGChannel                 c,
  3108.                                  short                     bufferNum)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x010F, 0x7000, 0xA82A);
  3109.  
  3110. EXTERN_API( ComponentResult )
  3111. SGCompressFrameComplete            (SGChannel                 c,
  3112.                                  short                     bufferNum,
  3113.                                  Boolean *                done,
  3114.                                  SGCompressInfo *        ci)                                    FIVEWORDINLINE(0x2F3C, 0x000A, 0x0110, 0x7000, 0xA82A);
  3115.  
  3116. EXTERN_API( ComponentResult )
  3117. SGAddFrame                        (SGChannel                 c,
  3118.                                  short                     bufferNum,
  3119.                                  TimeValue                 atTime,
  3120.                                  TimeScale                 scale,
  3121.                                  const SGCompressInfo *    ci)                                    FIVEWORDINLINE(0x2F3C, 0x000E, 0x0111, 0x7000, 0xA82A);
  3122.  
  3123. EXTERN_API( ComponentResult )
  3124. SGTransferFrameForCompress        (SGChannel                 c,
  3125.                                  short                     bufferNum,
  3126.                                  const MatrixRecord *    mp,
  3127.                                  RgnHandle                 clipRgn)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x0112, 0x7000, 0xA82A);
  3128.  
  3129. EXTERN_API( ComponentResult )
  3130. SGSetCompressBuffer                (SGChannel                 c,
  3131.                                  short                     depth,
  3132.                                  const Rect *            compressSize)                        FIVEWORDINLINE(0x2F3C, 0x0006, 0x0113, 0x7000, 0xA82A);
  3133.  
  3134. EXTERN_API( ComponentResult )
  3135. SGGetCompressBuffer                (SGChannel                 c,
  3136.                                  short *                depth,
  3137.                                  Rect *                    compressSize)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0114, 0x7000, 0xA82A);
  3138.  
  3139. EXTERN_API( ComponentResult )
  3140. SGGetBufferInfo                    (SGChannel                 c,
  3141.                                  short                     bufferNum,
  3142.                                  PixMapHandle *            bufferPM,
  3143.                                  Rect *                    bufferRect,
  3144.                                  GWorldPtr *            compressBuffer,
  3145.                                  Rect *                    compressBufferRect)                    FIVEWORDINLINE(0x2F3C, 0x0012, 0x0115, 0x7000, 0xA82A);
  3146.  
  3147. EXTERN_API( ComponentResult )
  3148. SGSetUseScreenBuffer            (SGChannel                 c,
  3149.                                  Boolean                 useScreenBuffer)                    FIVEWORDINLINE(0x2F3C, 0x0002, 0x0116, 0x7000, 0xA82A);
  3150.  
  3151. EXTERN_API( ComponentResult )
  3152. SGGetUseScreenBuffer            (SGChannel                 c,
  3153.                                  Boolean *                useScreenBuffer)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0117, 0x7000, 0xA82A);
  3154.  
  3155. EXTERN_API( ComponentResult )
  3156. SGGrabCompressComplete            (SGChannel                 c,
  3157.                                  Boolean *                done,
  3158.                                  SGCompressInfo *        ci,
  3159.                                  TimeRecord *            tr)                                    FIVEWORDINLINE(0x2F3C, 0x000C, 0x0118, 0x7000, 0xA82A);
  3160.  
  3161. EXTERN_API( ComponentResult )
  3162. SGDisplayCompress                (SGChannel                 c,
  3163.                                  Ptr                     dataPtr,
  3164.                                  ImageDescriptionHandle  desc,
  3165.                                  MatrixRecord *            mp,
  3166.                                  RgnHandle                 clipRgn)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x0119, 0x7000, 0xA82A);
  3167.  
  3168. EXTERN_API( ComponentResult )
  3169. SGSetFrameRate                    (SGChannel                 c,
  3170.                                  Fixed                     frameRate)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x011A, 0x7000, 0xA82A);
  3171.  
  3172. EXTERN_API( ComponentResult )
  3173. SGGetFrameRate                    (SGChannel                 c,
  3174.                                  Fixed *                frameRate)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x011B, 0x7000, 0xA82A);
  3175.  
  3176.  
  3177. EXTERN_API( ComponentResult )
  3178. SGSetPreferredPacketSize        (SGChannel                 c,
  3179.                                  long                     preferredPacketSizeInBytes)            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0121, 0x7000, 0xA82A);
  3180.  
  3181. EXTERN_API( ComponentResult )
  3182. SGGetPreferredPacketSize        (SGChannel                 c,
  3183.                                  long *                    preferredPacketSizeInBytes)            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0122, 0x7000, 0xA82A);
  3184.  
  3185. EXTERN_API( ComponentResult )
  3186. SGSetUserVideoCompressorList    (SGChannel                 c,
  3187.                                  Handle                 compressorTypes)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0123, 0x7000, 0xA82A);
  3188.  
  3189. EXTERN_API( ComponentResult )
  3190. SGGetUserVideoCompressorList    (SGChannel                 c,
  3191.                                  Handle *                compressorTypes)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0124, 0x7000, 0xA82A);
  3192.  
  3193. /*** Sequence Grab SOUND CHANNEL Component Stuff ***/
  3194.  
  3195. /*
  3196.     Sound stuff
  3197. */
  3198. EXTERN_API( ComponentResult )
  3199. SGSetSoundInputDriver            (SGChannel                 c,
  3200.                                  ConstStr255Param         driverName)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  3201.  
  3202. EXTERN_API( long )
  3203. SGGetSoundInputDriver            (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0101, 0x7000, 0xA82A);
  3204.  
  3205. EXTERN_API( ComponentResult )
  3206. SGSoundInputDriverChanged        (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0102, 0x7000, 0xA82A);
  3207.  
  3208. EXTERN_API( ComponentResult )
  3209. SGSetSoundRecordChunkSize        (SGChannel                 c,
  3210.                                  long                     seconds)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  3211.  
  3212. EXTERN_API( long )
  3213. SGGetSoundRecordChunkSize        (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0104, 0x7000, 0xA82A);
  3214.  
  3215. EXTERN_API( ComponentResult )
  3216. SGSetSoundInputRate                (SGChannel                 c,
  3217.                                  Fixed                     rate)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  3218.  
  3219. EXTERN_API( Fixed )
  3220. SGGetSoundInputRate                (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0106, 0x7000, 0xA82A);
  3221.  
  3222. EXTERN_API( ComponentResult )
  3223. SGSetSoundInputParameters        (SGChannel                 c,
  3224.                                  short                     sampleSize,
  3225.                                  short                     numChannels,
  3226.                                  OSType                 compressionType)                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  3227.  
  3228. EXTERN_API( ComponentResult )
  3229. SGGetSoundInputParameters        (SGChannel                 c,
  3230.                                  short *                sampleSize,
  3231.                                  short *                numChannels,
  3232.                                  OSType *                compressionType)                    FIVEWORDINLINE(0x2F3C, 0x000C, 0x0108, 0x7000, 0xA82A);
  3233.  
  3234. EXTERN_API( ComponentResult )
  3235. SGSetAdditionalSoundRates        (SGChannel                 c,
  3236.                                  Handle                 rates)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0109, 0x7000, 0xA82A);
  3237.  
  3238. EXTERN_API( ComponentResult )
  3239. SGGetAdditionalSoundRates        (SGChannel                 c,
  3240.                                  Handle *                rates)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  3241.  
  3242. /*
  3243.     Text stuff
  3244. */
  3245. EXTERN_API( ComponentResult )
  3246. SGSetFontName                    (SGChannel                 c,
  3247.                                  StringPtr                 pstr)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  3248.  
  3249. EXTERN_API( ComponentResult )
  3250. SGSetFontSize                    (SGChannel                 c,
  3251.                                  short                     fontSize)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x0101, 0x7000, 0xA82A);
  3252.  
  3253. EXTERN_API( ComponentResult )
  3254. SGSetTextForeColor                (SGChannel                 c,
  3255.                                  RGBColor *                theColor)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  3256.  
  3257. EXTERN_API( ComponentResult )
  3258. SGSetTextBackColor                (SGChannel                 c,
  3259.                                  RGBColor *                theColor)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  3260.  
  3261. EXTERN_API( ComponentResult )
  3262. SGSetJustification                (SGChannel                 c,
  3263.                                  short                     just)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0104, 0x7000, 0xA82A);
  3264.  
  3265. EXTERN_API( ComponentResult )
  3266. SGGetTextReturnToSpaceValue        (SGChannel                 c,
  3267.                                  short *                rettospace)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  3268.  
  3269. EXTERN_API( ComponentResult )
  3270. SGSetTextReturnToSpaceValue        (SGChannel                 c,
  3271.                                  short                     rettospace)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x0106, 0x7000, 0xA82A);
  3272.  
  3273. /*
  3274.     Music stuff
  3275. */
  3276. EXTERN_API( ComponentResult )
  3277. SGGetInstrument                    (SGChannel                 c,
  3278.                                  ToneDescription *        td)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  3279.  
  3280. EXTERN_API( ComponentResult )
  3281. SGSetInstrument                    (SGChannel                 c,
  3282.                                  ToneDescription *        td)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  3283.  
  3284.  
  3285. enum {
  3286.     sgChannelAtom                = FOUR_CHAR_CODE('chan'),
  3287.     sgChannelSettingsAtom        = FOUR_CHAR_CODE('ctom'),
  3288.     sgChannelDescription        = FOUR_CHAR_CODE('cdsc'),
  3289.     sgChannelSettings            = FOUR_CHAR_CODE('cset')
  3290. };
  3291.  
  3292. enum {
  3293.     sgDeviceNameType            = FOUR_CHAR_CODE('name'),
  3294.     sgUsageType                    = FOUR_CHAR_CODE('use '),
  3295.     sgPlayFlagsType                = FOUR_CHAR_CODE('plyf'),
  3296.     sgClipType                    = FOUR_CHAR_CODE('clip'),
  3297.     sgMatrixType                = FOUR_CHAR_CODE('mtrx'),
  3298.     sgVolumeType                = FOUR_CHAR_CODE('volu')
  3299. };
  3300.  
  3301. enum {
  3302.     sgPanelSettingsAtom            = FOUR_CHAR_CODE('ptom'),
  3303.     sgPanelDescription            = FOUR_CHAR_CODE('pdsc'),
  3304.     sgPanelSettings                = FOUR_CHAR_CODE('pset')
  3305. };
  3306.  
  3307. enum {
  3308.     sgcSoundCompressionType        = FOUR_CHAR_CODE('scmp'),
  3309.     sgcSoundSampleRateType        = FOUR_CHAR_CODE('srat'),
  3310.     sgcSoundChannelCountType    = FOUR_CHAR_CODE('schn'),
  3311.     sgcSoundSampleSizeType        = FOUR_CHAR_CODE('ssiz'),
  3312.     sgcSoundInputType            = FOUR_CHAR_CODE('sinp'),
  3313.     sgcSoundGainType            = FOUR_CHAR_CODE('gain')
  3314. };
  3315.  
  3316. enum {
  3317.     sgcVideoHueType                = FOUR_CHAR_CODE('hue '),
  3318.     sgcVideoSaturationType        = FOUR_CHAR_CODE('satr'),
  3319.     sgcVideoContrastType        = FOUR_CHAR_CODE('trst'),
  3320.     sgcVideoSharpnessType        = FOUR_CHAR_CODE('shrp'),
  3321.     sgcVideoBrigtnessType        = FOUR_CHAR_CODE('brit'),
  3322.     sgcVideoBlackLevelType        = FOUR_CHAR_CODE('blkl'),
  3323.     sgcVideoWhiteLevelType        = FOUR_CHAR_CODE('whtl'),
  3324.     sgcVideoInputType            = FOUR_CHAR_CODE('vinp'),
  3325.     sgcVideoFormatType            = FOUR_CHAR_CODE('vstd'),
  3326.     sgcVideoFilterType            = FOUR_CHAR_CODE('vflt'),
  3327.     sgcVideoRectType            = FOUR_CHAR_CODE('vrct'),
  3328.     sgcVideoDigitizerType        = FOUR_CHAR_CODE('vdig')
  3329. };
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335. typedef ComponentInstance                 QTVideoOutputComponent;
  3336. /* Component type and subtype enumerations*/
  3337. enum {
  3338.     QTVideoOutputComponentType    = FOUR_CHAR_CODE('vout'),
  3339.     QTVideoOutputComponentBaseSubType = FOUR_CHAR_CODE('base')
  3340. };
  3341.  
  3342.  
  3343. /* QTVideoOutput Component flags*/
  3344.  
  3345. enum {
  3346.     kQTVideoOutputDontDisplayToUser = 1L << 0
  3347. };
  3348.  
  3349. /* Display mode atom types*/
  3350.  
  3351. enum {
  3352.     kQTVODisplayModeItem        = FOUR_CHAR_CODE('qdmi'),
  3353.     kQTVODimensions                = FOUR_CHAR_CODE('dimn'),        /* atom contains two longs - pixel count - width, height*/
  3354.     kQTVOResolution                = FOUR_CHAR_CODE('resl'),        /* atom contains two Fixed - hRes, vRes in dpi*/
  3355.     kQTVORefreshRate            = FOUR_CHAR_CODE('refr'),        /* atom contains one Fixed - refresh rate in Hz*/
  3356.     kQTVOPixelType                = FOUR_CHAR_CODE('pixl'),        /* atom contains one OSType - pixel format of mode*/
  3357.     kQTVOName                    = FOUR_CHAR_CODE('name'),        /* atom contains string (no length byte) - name of mode for display to user*/
  3358.     kQTVODecompressors            = FOUR_CHAR_CODE('deco'),        /* atom contains other atoms indicating supported decompressors*/
  3359.                                                                 /* kQTVODecompressors sub-atoms*/
  3360.     kQTVODecompressorType        = FOUR_CHAR_CODE('dety'),        /* atom contains one OSType - decompressor type code*/
  3361.     kQTVODecompressorContinuous    = FOUR_CHAR_CODE('cont'),        /* atom contains one Boolean - true if this type is displayed continuously*/
  3362.     kQTVODecompressorComponent    = FOUR_CHAR_CODE('cmpt')        /* atom contains one Component - component id of decompressor*/
  3363. };
  3364.  
  3365. /** These are QTVideoOutput procedures **/
  3366. EXTERN_API( ComponentResult )
  3367. QTVideoOutputGetDisplayModeList    (QTVideoOutputComponent  vo,
  3368.                                  QTAtomContainer *        outputs)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A);
  3369.  
  3370. EXTERN_API( ComponentResult )
  3371. QTVideoOutputGetCurrentClientName (QTVideoOutputComponent  vo,
  3372.                                  Str255                 str)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0002, 0x7000, 0xA82A);
  3373.  
  3374. EXTERN_API( ComponentResult )
  3375. QTVideoOutputSetClientName        (QTVideoOutputComponent  vo,
  3376.                                  ConstStr255Param         str)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  3377.  
  3378. EXTERN_API( ComponentResult )
  3379. QTVideoOutputGetClientName        (QTVideoOutputComponent  vo,
  3380.                                  Str255                 str)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A);
  3381.  
  3382. EXTERN_API( ComponentResult )
  3383. QTVideoOutputBegin                (QTVideoOutputComponent  vo)                                FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A);
  3384.  
  3385. EXTERN_API( ComponentResult )
  3386. QTVideoOutputEnd                (QTVideoOutputComponent  vo)                                FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  3387.  
  3388. EXTERN_API( ComponentResult )
  3389. QTVideoOutputSetDisplayMode        (QTVideoOutputComponent  vo,
  3390.                                  long                     displayModeID)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  3391.  
  3392. EXTERN_API( ComponentResult )
  3393. QTVideoOutputGetDisplayMode        (QTVideoOutputComponent  vo,
  3394.                                  long *                    displayModeID)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
  3395.  
  3396. EXTERN_API( ComponentResult )
  3397. QTVideoOutputCustomConfigureDisplay (QTVideoOutputComponent  vo,
  3398.                                  ModalFilterUPP         filter)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0009, 0x7000, 0xA82A);
  3399.  
  3400. EXTERN_API( ComponentResult )
  3401. QTVideoOutputSaveState            (QTVideoOutputComponent  vo,
  3402.                                  QTAtomContainer *        state)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A);
  3403.  
  3404. EXTERN_API( ComponentResult )
  3405. QTVideoOutputRestoreState        (QTVideoOutputComponent  vo,
  3406.                                  QTAtomContainer         state)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A);
  3407.  
  3408. EXTERN_API( ComponentResult )
  3409. QTVideoOutputGetGWorld            (QTVideoOutputComponent  vo,
  3410.                                  GWorldPtr *            gw)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  3411.  
  3412. EXTERN_API( ComponentResult )
  3413. QTVideoOutputGetGWorldParameters (QTVideoOutputComponent  vo,
  3414.                                  Ptr *                    baseAddr,
  3415.                                  long *                    rowBytes,
  3416.                                  CTabHandle *            colorTable)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x000D, 0x7000, 0xA82A);
  3417.  
  3418. EXTERN_API( ComponentResult )
  3419. QTVideoOutputGetIndSoundOutput    (QTVideoOutputComponent  vo,
  3420.                                  long                     index,
  3421.                                  Component *            outputComponent)                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x000E, 0x7000, 0xA82A);
  3422.  
  3423. EXTERN_API( ComponentResult )
  3424. QTVideoOutputGetClock            (QTVideoOutputComponent  vo,
  3425.                                  ComponentInstance *    clock)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A);
  3426.  
  3427. EXTERN_API( ComponentResult )
  3428. QTVideoOutputSetEchoPort        (QTVideoOutputComponent  vo,
  3429.                                  CGrafPtr                 echoPort)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A);
  3430.  
  3431. /* UPP call backs */
  3432. #if OPAQUE_UPP_TYPES
  3433.     EXTERN_API(DataHCompletionUPP)
  3434.     NewDataHCompletionUPP           (DataHCompletionProcPtr    userRoutine);
  3435.  
  3436.     EXTERN_API(VdigIntUPP)
  3437.     NewVdigIntUPP                   (VdigIntProcPtr            userRoutine);
  3438.  
  3439.     EXTERN_API(SGDataUPP)
  3440.     NewSGDataUPP                   (SGDataProcPtr            userRoutine);
  3441.  
  3442.     EXTERN_API(SGModalFilterUPP)
  3443.     NewSGModalFilterUPP               (SGModalFilterProcPtr    userRoutine);
  3444.  
  3445.     EXTERN_API(SGGrabBottleUPP)
  3446.     NewSGGrabBottleUPP               (SGGrabBottleProcPtr        userRoutine);
  3447.  
  3448.     EXTERN_API(SGGrabCompleteBottleUPP)
  3449.     NewSGGrabCompleteBottleUPP       (SGGrabCompleteBottleProcPtr userRoutine);
  3450.  
  3451.     EXTERN_API(SGDisplayBottleUPP)
  3452.     NewSGDisplayBottleUPP           (SGDisplayBottleProcPtr    userRoutine);
  3453.  
  3454.     EXTERN_API(SGCompressBottleUPP)
  3455.     NewSGCompressBottleUPP           (SGCompressBottleProcPtr    userRoutine);
  3456.  
  3457.     EXTERN_API(SGCompressCompleteBottleUPP)
  3458.     NewSGCompressCompleteBottleUPP    (SGCompressCompleteBottleProcPtr userRoutine);
  3459.  
  3460.     EXTERN_API(SGAddFrameBottleUPP)
  3461.     NewSGAddFrameBottleUPP           (SGAddFrameBottleProcPtr    userRoutine);
  3462.  
  3463.     EXTERN_API(SGTransferFrameBottleUPP)
  3464.     NewSGTransferFrameBottleUPP       (SGTransferFrameBottleProcPtr userRoutine);
  3465.  
  3466.     EXTERN_API(SGGrabCompressCompleteBottleUPP)
  3467.     NewSGGrabCompressCompleteBottleUPP    (SGGrabCompressCompleteBottleProcPtr userRoutine);
  3468.  
  3469.     EXTERN_API(SGDisplayCompressBottleUPP)
  3470.     NewSGDisplayCompressBottleUPP    (SGDisplayCompressBottleProcPtr userRoutine);
  3471.  
  3472.     EXTERN_API(void)
  3473.     DisposeDataHCompletionUPP       (DataHCompletionUPP        userUPP);
  3474.  
  3475.     EXTERN_API(void)
  3476.     DisposeVdigIntUPP               (VdigIntUPP                userUPP);
  3477.  
  3478.     EXTERN_API(void)
  3479.     DisposeSGDataUPP               (SGDataUPP                userUPP);
  3480.  
  3481.     EXTERN_API(void)
  3482.     DisposeSGModalFilterUPP           (SGModalFilterUPP        userUPP);
  3483.  
  3484.     EXTERN_API(void)
  3485.     DisposeSGGrabBottleUPP           (SGGrabBottleUPP            userUPP);
  3486.  
  3487.     EXTERN_API(void)
  3488.     DisposeSGGrabCompleteBottleUPP    (SGGrabCompleteBottleUPP userUPP);
  3489.  
  3490.     EXTERN_API(void)
  3491.     DisposeSGDisplayBottleUPP       (SGDisplayBottleUPP        userUPP);
  3492.  
  3493.     EXTERN_API(void)
  3494.     DisposeSGCompressBottleUPP       (SGCompressBottleUPP        userUPP);
  3495.  
  3496.     EXTERN_API(void)
  3497.     DisposeSGCompressCompleteBottleUPP    (SGCompressCompleteBottleUPP userUPP);
  3498.  
  3499.     EXTERN_API(void)
  3500.     DisposeSGAddFrameBottleUPP       (SGAddFrameBottleUPP        userUPP);
  3501.  
  3502.     EXTERN_API(void)
  3503.     DisposeSGTransferFrameBottleUPP    (SGTransferFrameBottleUPP userUPP);
  3504.  
  3505.     EXTERN_API(void)
  3506.     DisposeSGGrabCompressCompleteBottleUPP    (SGGrabCompressCompleteBottleUPP userUPP);
  3507.  
  3508.     EXTERN_API(void)
  3509.     DisposeSGDisplayCompressBottleUPP    (SGDisplayCompressBottleUPP userUPP);
  3510.  
  3511.     EXTERN_API(void)
  3512.     InvokeDataHCompletionUPP       (Ptr                        request,
  3513.                                     long                    refcon,
  3514.                                     OSErr                    err,
  3515.                                     DataHCompletionUPP        userUPP);
  3516.  
  3517.     EXTERN_API(void)
  3518.     InvokeVdigIntUPP               (long                    flags,
  3519.                                     long                    refcon,
  3520.                                     VdigIntUPP                userUPP);
  3521.  
  3522.     EXTERN_API(OSErr)
  3523.     InvokeSGDataUPP                   (SGChannel                c,
  3524.                                     Ptr                        p,
  3525.                                     long                    len,
  3526.                                     long *                    offset,
  3527.                                     long                    chRefCon,
  3528.                                     TimeValue                time,
  3529.                                     short                    writeType,
  3530.                                     long                    refCon,
  3531.                                     SGDataUPP                userUPP);
  3532.  
  3533.     EXTERN_API(Boolean)
  3534.     InvokeSGModalFilterUPP           (DialogPtr                theDialog,
  3535.                                     const EventRecord *        theEvent,
  3536.                                     short *                    itemHit,
  3537.                                     long                    refCon,
  3538.                                     SGModalFilterUPP        userUPP);
  3539.  
  3540.     EXTERN_API(ComponentResult)
  3541.     InvokeSGGrabBottleUPP           (SGChannel                c,
  3542.                                     short                    bufferNum,
  3543.                                     long                    refCon,
  3544.                                     SGGrabBottleUPP            userUPP);
  3545.  
  3546.     EXTERN_API(ComponentResult)
  3547.     InvokeSGGrabCompleteBottleUPP    (SGChannel                c,
  3548.                                     short                    bufferNum,
  3549.                                     Boolean *                done,
  3550.                                     long                    refCon,
  3551.                                     SGGrabCompleteBottleUPP    userUPP);
  3552.  
  3553.     EXTERN_API(ComponentResult)
  3554.     InvokeSGDisplayBottleUPP       (SGChannel                c,
  3555.                                     short                    bufferNum,
  3556.                                     MatrixRecord *            mp,
  3557.                                     RgnHandle                clipRgn,
  3558.                                     long                    refCon,
  3559.                                     SGDisplayBottleUPP        userUPP);
  3560.  
  3561.     EXTERN_API(ComponentResult)
  3562.     InvokeSGCompressBottleUPP       (SGChannel                c,
  3563.                                     short                    bufferNum,
  3564.                                     long                    refCon,
  3565.                                     SGCompressBottleUPP        userUPP);
  3566.  
  3567.     EXTERN_API(ComponentResult)
  3568.     InvokeSGCompressCompleteBottleUPP    (SGChannel            c,
  3569.                                     short                    bufferNum,
  3570.                                     Boolean *                done,
  3571.                                     SGCompressInfo *        ci,
  3572.                                     long                    refCon,
  3573.                                     SGCompressCompleteBottleUPP userUPP);
  3574.  
  3575.     EXTERN_API(ComponentResult)
  3576.     InvokeSGAddFrameBottleUPP       (SGChannel                c,
  3577.                                     short                    bufferNum,
  3578.                                     TimeValue                atTime,
  3579.                                     TimeScale                scale,
  3580.                                     const SGCompressInfo *    ci,
  3581.                                     long                    refCon,
  3582.                                     SGAddFrameBottleUPP        userUPP);
  3583.  
  3584.     EXTERN_API(ComponentResult)
  3585.     InvokeSGTransferFrameBottleUPP    (SGChannel            c,
  3586.                                     short                    bufferNum,
  3587.                                     MatrixRecord *            mp,
  3588.                                     RgnHandle                clipRgn,
  3589.                                     long                    refCon,
  3590.                                     SGTransferFrameBottleUPP userUPP);
  3591.  
  3592.     EXTERN_API(ComponentResult)
  3593.     InvokeSGGrabCompressCompleteBottleUPP    (SGChannel        c,
  3594.                                     Boolean *                done,
  3595.                                     SGCompressInfo *        ci,
  3596.                                     TimeRecord *            t,
  3597.                                     long                    refCon,
  3598.                                     SGGrabCompressCompleteBottleUPP userUPP);
  3599.  
  3600.     EXTERN_API(ComponentResult)
  3601.     InvokeSGDisplayCompressBottleUPP    (SGChannel            c,
  3602.                                     Ptr                        dataPtr,
  3603.                                     ImageDescriptionHandle    desc,
  3604.                                     MatrixRecord *            mp,
  3605.                                     RgnHandle                clipRgn,
  3606.                                     long                    refCon,
  3607.                                     SGDisplayCompressBottleUPP userUPP);
  3608.  
  3609. #else
  3610.     enum { uppDataHCompletionProcInfo = 0x00000BC0 };                 /* pascal no_return_value Func(4_bytes, 4_bytes, 2_bytes) */
  3611.     enum { uppVdigIntProcInfo = 0x000003C0 };                         /* pascal no_return_value Func(4_bytes, 4_bytes) */
  3612.     enum { uppSGDataProcInfo = 0x003BFFE0 };                         /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes) */
  3613.     enum { uppSGModalFilterProcInfo = 0x00003FD0 };                 /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3614.     enum { uppSGGrabBottleProcInfo = 0x00000EF0 };                     /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes) */
  3615.     enum { uppSGGrabCompleteBottleProcInfo = 0x00003EF0 };             /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
  3616.     enum { uppSGDisplayBottleProcInfo = 0x0000FEF0 };                 /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3617.     enum { uppSGCompressBottleProcInfo = 0x00000EF0 };                 /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes) */
  3618.     enum { uppSGCompressCompleteBottleProcInfo = 0x0000FEF0 };         /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3619.     enum { uppSGAddFrameBottleProcInfo = 0x0003FEF0 };                 /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3620.     enum { uppSGTransferFrameBottleProcInfo = 0x0000FEF0 };         /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3621.     enum { uppSGGrabCompressCompleteBottleProcInfo = 0x0000FFF0 };     /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3622.     enum { uppSGDisplayCompressBottleProcInfo = 0x0003FFF0 };         /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3623.     #define NewDataHCompletionUPP(userRoutine)                         (DataHCompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDataHCompletionProcInfo, GetCurrentArchitecture())
  3624.     #define NewVdigIntUPP(userRoutine)                                 (VdigIntUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppVdigIntProcInfo, GetCurrentArchitecture())
  3625.     #define NewSGDataUPP(userRoutine)                                 (SGDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDataProcInfo, GetCurrentArchitecture())
  3626.     #define NewSGModalFilterUPP(userRoutine)                         (SGModalFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGModalFilterProcInfo, GetCurrentArchitecture())
  3627.     #define NewSGGrabBottleUPP(userRoutine)                         (SGGrabBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabBottleProcInfo, GetCurrentArchitecture())
  3628.     #define NewSGGrabCompleteBottleUPP(userRoutine)                 (SGGrabCompleteBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabCompleteBottleProcInfo, GetCurrentArchitecture())
  3629.     #define NewSGDisplayBottleUPP(userRoutine)                         (SGDisplayBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDisplayBottleProcInfo, GetCurrentArchitecture())
  3630.     #define NewSGCompressBottleUPP(userRoutine)                     (SGCompressBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGCompressBottleProcInfo, GetCurrentArchitecture())
  3631.     #define NewSGCompressCompleteBottleUPP(userRoutine)             (SGCompressCompleteBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGCompressCompleteBottleProcInfo, GetCurrentArchitecture())
  3632.     #define NewSGAddFrameBottleUPP(userRoutine)                     (SGAddFrameBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGAddFrameBottleProcInfo, GetCurrentArchitecture())
  3633.     #define NewSGTransferFrameBottleUPP(userRoutine)                 (SGTransferFrameBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGTransferFrameBottleProcInfo, GetCurrentArchitecture())
  3634.     #define NewSGGrabCompressCompleteBottleUPP(userRoutine)         (SGGrabCompressCompleteBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabCompressCompleteBottleProcInfo, GetCurrentArchitecture())
  3635.     #define NewSGDisplayCompressBottleUPP(userRoutine)                 (SGDisplayCompressBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDisplayCompressBottleProcInfo, GetCurrentArchitecture())
  3636.     #define DisposeDataHCompletionUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  3637.     #define DisposeVdigIntUPP(userUPP)                                 DisposeRoutineDescriptor(userUPP)
  3638.     #define DisposeSGDataUPP(userUPP)                                 DisposeRoutineDescriptor(userUPP)
  3639.     #define DisposeSGModalFilterUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  3640.     #define DisposeSGGrabBottleUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  3641.     #define DisposeSGGrabCompleteBottleUPP(userUPP)                 DisposeRoutineDescriptor(userUPP)
  3642.     #define DisposeSGDisplayBottleUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  3643.     #define DisposeSGCompressBottleUPP(userUPP)                     DisposeRoutineDescriptor(userUPP)
  3644.     #define DisposeSGCompressCompleteBottleUPP(userUPP)             DisposeRoutineDescriptor(userUPP)
  3645.     #define DisposeSGAddFrameBottleUPP(userUPP)                     DisposeRoutineDescriptor(userUPP)
  3646.     #define DisposeSGTransferFrameBottleUPP(userUPP)                 DisposeRoutineDescriptor(userUPP)
  3647.     #define DisposeSGGrabCompressCompleteBottleUPP(userUPP)         DisposeRoutineDescriptor(userUPP)
  3648.     #define DisposeSGDisplayCompressBottleUPP(userUPP)                 DisposeRoutineDescriptor(userUPP)
  3649.     #define InvokeDataHCompletionUPP(request, refcon, err, userUPP)  CALL_THREE_PARAMETER_UPP((userUPP), uppDataHCompletionProcInfo, (request), (refcon), (err))
  3650.     #define InvokeVdigIntUPP(flags, refcon, userUPP)                 CALL_TWO_PARAMETER_UPP((userUPP), uppVdigIntProcInfo, (flags), (refcon))
  3651.     #define InvokeSGDataUPP(c, p, len, offset, chRefCon, time, writeType, refCon, userUPP)  (OSErr)CALL_EIGHT_PARAMETER_UPP((userUPP), uppSGDataProcInfo, (c), (p), (len), (offset), (chRefCon), (time), (writeType), (refCon))
  3652.     #define InvokeSGModalFilterUPP(theDialog, theEvent, itemHit, refCon, userUPP)  (Boolean)CALL_FOUR_PARAMETER_UPP((userUPP), uppSGModalFilterProcInfo, (theDialog), (theEvent), (itemHit), (refCon))
  3653.     #define InvokeSGGrabBottleUPP(c, bufferNum, refCon, userUPP)     (ComponentResult)CALL_THREE_PARAMETER_UPP((userUPP), uppSGGrabBottleProcInfo, (c), (bufferNum), (refCon))
  3654.     #define InvokeSGGrabCompleteBottleUPP(c, bufferNum, done, refCon, userUPP)  (ComponentResult)CALL_FOUR_PARAMETER_UPP((userUPP), uppSGGrabCompleteBottleProcInfo, (c), (bufferNum), (done), (refCon))
  3655.     #define InvokeSGDisplayBottleUPP(c, bufferNum, mp, clipRgn, refCon, userUPP)  (ComponentResult)CALL_FIVE_PARAMETER_UPP((userUPP), uppSGDisplayBottleProcInfo, (c), (bufferNum), (mp), (clipRgn), (refCon))
  3656.     #define InvokeSGCompressBottleUPP(c, bufferNum, refCon, userUPP)  (ComponentResult)CALL_THREE_PARAMETER_UPP((userUPP), uppSGCompressBottleProcInfo, (c), (bufferNum), (refCon))
  3657.     #define InvokeSGCompressCompleteBottleUPP(c, bufferNum, done, ci, refCon, userUPP)  (ComponentResult)CALL_FIVE_PARAMETER_UPP((userUPP), uppSGCompressCompleteBottleProcInfo, (c), (bufferNum), (done), (ci), (refCon))
  3658.     #define InvokeSGAddFrameBottleUPP(c, bufferNum, atTime, scale, ci, refCon, userUPP)  (ComponentResult)CALL_SIX_PARAMETER_UPP((userUPP), uppSGAddFrameBottleProcInfo, (c), (bufferNum), (atTime), (scale), (ci), (refCon))
  3659.     #define InvokeSGTransferFrameBottleUPP(c, bufferNum, mp, clipRgn, refCon, userUPP)  (ComponentResult)CALL_FIVE_PARAMETER_UPP((userUPP), uppSGTransferFrameBottleProcInfo, (c), (bufferNum), (mp), (clipRgn), (refCon))
  3660.     #define InvokeSGGrabCompressCompleteBottleUPP(c, done, ci, t, refCon, userUPP)  (ComponentResult)CALL_FIVE_PARAMETER_UPP((userUPP), uppSGGrabCompressCompleteBottleProcInfo, (c), (done), (ci), (t), (refCon))
  3661.     #define InvokeSGDisplayCompressBottleUPP(c, dataPtr, desc, mp, clipRgn, refCon, userUPP)  (ComponentResult)CALL_SIX_PARAMETER_UPP((userUPP), uppSGDisplayCompressBottleProcInfo, (c), (dataPtr), (desc), (mp), (clipRgn), (refCon))
  3662. #endif
  3663. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  3664. #define NewDataHCompletionProc(userRoutine)                     NewDataHCompletionUPP(userRoutine)
  3665. #define NewVdigIntProc(userRoutine)                             NewVdigIntUPP(userRoutine)
  3666. #define NewSGDataProc(userRoutine)                                 NewSGDataUPP(userRoutine)
  3667. #define NewSGModalFilterProc(userRoutine)                         NewSGModalFilterUPP(userRoutine)
  3668. #define NewSGGrabBottleProc(userRoutine)                         NewSGGrabBottleUPP(userRoutine)
  3669. #define NewSGGrabCompleteBottleProc(userRoutine)                 NewSGGrabCompleteBottleUPP(userRoutine)
  3670. #define NewSGDisplayBottleProc(userRoutine)                     NewSGDisplayBottleUPP(userRoutine)
  3671. #define NewSGCompressBottleProc(userRoutine)                     NewSGCompressBottleUPP(userRoutine)
  3672. #define NewSGCompressCompleteBottleProc(userRoutine)             NewSGCompressCompleteBottleUPP(userRoutine)
  3673. #define NewSGAddFrameBottleProc(userRoutine)                     NewSGAddFrameBottleUPP(userRoutine)
  3674. #define NewSGTransferFrameBottleProc(userRoutine)                 NewSGTransferFrameBottleUPP(userRoutine)
  3675. #define NewSGGrabCompressCompleteBottleProc(userRoutine)         NewSGGrabCompressCompleteBottleUPP(userRoutine)
  3676. #define NewSGDisplayCompressBottleProc(userRoutine)             NewSGDisplayCompressBottleUPP(userRoutine)
  3677. #define CallDataHCompletionProc(userRoutine, request, refcon, err) InvokeDataHCompletionUPP(request, refcon, err, userRoutine)
  3678. #define CallVdigIntProc(userRoutine, flags, refcon)                InvokeVdigIntUPP(flags, refcon, userRoutine)
  3679. #define CallSGDataProc(userRoutine, c, p, len, offset, chRefCon, time, writeType, refCon) InvokeSGDataUPP(c, p, len, offset, chRefCon, time, writeType, refCon, userRoutine)
  3680. #define CallSGModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refCon) InvokeSGModalFilterUPP(theDialog, theEvent, itemHit, refCon, userRoutine)
  3681. #define CallSGGrabBottleProc(userRoutine, c, bufferNum, refCon)    InvokeSGGrabBottleUPP(c, bufferNum, refCon, userRoutine)
  3682. #define CallSGGrabCompleteBottleProc(userRoutine, c, bufferNum, done, refCon) InvokeSGGrabCompleteBottleUPP(c, bufferNum, done, refCon, userRoutine)
  3683. #define CallSGDisplayBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon) InvokeSGDisplayBottleUPP(c, bufferNum, mp, clipRgn, refCon, userRoutine)
  3684. #define CallSGCompressBottleProc(userRoutine, c, bufferNum, refCon) InvokeSGCompressBottleUPP(c, bufferNum, refCon, userRoutine)
  3685. #define CallSGCompressCompleteBottleProc(userRoutine, c, bufferNum, done, ci, refCon) InvokeSGCompressCompleteBottleUPP(c, bufferNum, done, ci, refCon, userRoutine)
  3686. #define CallSGAddFrameBottleProc(userRoutine, c, bufferNum, atTime, scale, ci, refCon) InvokeSGAddFrameBottleUPP(c, bufferNum, atTime, scale, ci, refCon, userRoutine)
  3687. #define CallSGTransferFrameBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon) InvokeSGTransferFrameBottleUPP(c, bufferNum, mp, clipRgn, refCon, userRoutine)
  3688. #define CallSGGrabCompressCompleteBottleProc(userRoutine, c, done, ci, t, refCon) InvokeSGGrabCompressCompleteBottleUPP(c, done, ci, t, refCon, userRoutine)
  3689. #define CallSGDisplayCompressBottleProc(userRoutine, c, dataPtr, desc, mp, clipRgn, refCon) InvokeSGDisplayCompressBottleUPP(c, dataPtr, desc, mp, clipRgn, refCon, userRoutine)
  3690.  
  3691. /* selectors for component calls */
  3692. enum {
  3693.     kClockGetTimeSelect                                = 0x0001,
  3694.     kClockNewCallBackSelect                            = 0x0002,
  3695.     kClockDisposeCallBackSelect                        = 0x0003,
  3696.     kClockCallMeWhenSelect                            = 0x0004,
  3697.     kClockCancelCallBackSelect                        = 0x0005,
  3698.     kClockRateChangedSelect                            = 0x0006,
  3699.     kClockTimeChangedSelect                            = 0x0007,
  3700.     kClockSetTimeBaseSelect                            = 0x0008,
  3701.     kClockStartStopChangedSelect                    = 0x0009,
  3702.     kClockGetRateSelect                                = 0x000A,
  3703.     kSCGetCompressionExtendedSelect                    = 0x0001,
  3704.     kSCPositionRectSelect                            = 0x0002,
  3705.     kSCPositionDialogSelect                            = 0x0003,
  3706.     kSCSetTestImagePictHandleSelect                    = 0x0004,
  3707.     kSCSetTestImagePictFileSelect                    = 0x0005,
  3708.     kSCSetTestImagePixMapSelect                        = 0x0006,
  3709.     kSCGetBestDeviceRectSelect                        = 0x0007,
  3710.     kSCRequestImageSettingsSelect                    = 0x000A,
  3711.     kSCCompressImageSelect                            = 0x000B,
  3712.     kSCCompressPictureSelect                        = 0x000C,
  3713.     kSCCompressPictureFileSelect                    = 0x000D,
  3714.     kSCRequestSequenceSettingsSelect                = 0x000E,
  3715.     kSCCompressSequenceBeginSelect                    = 0x000F,
  3716.     kSCCompressSequenceFrameSelect                    = 0x0010,
  3717.     kSCCompressSequenceEndSelect                    = 0x0011,
  3718.     kSCDefaultPictHandleSettingsSelect                = 0x0012,
  3719.     kSCDefaultPictFileSettingsSelect                = 0x0013,
  3720.     kSCDefaultPixMapSettingsSelect                    = 0x0014,
  3721.     kSCGetInfoSelect                                = 0x0015,
  3722.     kSCSetInfoSelect                                = 0x0016,
  3723.     kSCNewGWorldSelect                                = 0x0017,
  3724.     kSCSetCompressFlagsSelect                        = 0x0018,
  3725.     kSCGetCompressFlagsSelect                        = 0x0019,
  3726.     kSCGetSettingsAsTextSelect                        = 0x001A,
  3727.     kSCGetSettingsAsAtomContainerSelect                = 0x001B,
  3728.     kSCSetSettingsFromAtomContainerSelect            = 0x001C,
  3729.     kTweenerInitializeSelect                        = 0x0001,
  3730.     kTweenerDoTweenSelect                            = 0x0002,
  3731.     kTweenerResetSelect                                = 0x0003,
  3732.     kTCGetCurrentTimeCodeSelect                        = 0x0101,
  3733.     kTCGetTimeCodeAtTimeSelect                        = 0x0102,
  3734.     kTCTimeCodeToStringSelect                        = 0x0103,
  3735.     kTCTimeCodeToFrameNumberSelect                    = 0x0104,
  3736.     kTCFrameNumberToTimeCodeSelect                    = 0x0105,
  3737.     kTCGetSourceRefSelect                            = 0x0106,
  3738.     kTCSetSourceRefSelect                            = 0x0107,
  3739.     kTCSetTimeCodeFlagsSelect                        = 0x0108,
  3740.     kTCGetTimeCodeFlagsSelect                        = 0x0109,
  3741.     kTCSetDisplayOptionsSelect                        = 0x010A,
  3742.     kTCGetDisplayOptionsSelect                        = 0x010B,
  3743.     kMovieImportHandleSelect                        = 0x0001,
  3744.     kMovieImportFileSelect                            = 0x0002,
  3745.     kMovieImportSetSampleDurationSelect                = 0x0003,
  3746.     kMovieImportSetSampleDescriptionSelect            = 0x0004,
  3747.     kMovieImportSetMediaFileSelect                    = 0x0005,
  3748.     kMovieImportSetDimensionsSelect                    = 0x0006,
  3749.     kMovieImportSetChunkSizeSelect                    = 0x0007,
  3750.     kMovieImportSetProgressProcSelect                = 0x0008,
  3751.     kMovieImportSetAuxiliaryDataSelect                = 0x0009,
  3752.     kMovieImportSetFromScrapSelect                    = 0x000A,
  3753.     kMovieImportDoUserDialogSelect                    = 0x000B,
  3754.     kMovieImportSetDurationSelect                    = 0x000C,
  3755.     kMovieImportGetAuxiliaryDataTypeSelect            = 0x000D,
  3756.     kMovieImportValidateSelect                        = 0x000E,
  3757.     kMovieImportGetFileTypeSelect                    = 0x000F,
  3758.     kMovieImportDataRefSelect                        = 0x0010,
  3759.     kMovieImportGetSampleDescriptionSelect            = 0x0011,
  3760.     kMovieImportGetMIMETypeListSelect                = 0x0012,
  3761.     kMovieImportSetOffsetAndLimitSelect                = 0x0013,
  3762.     kMovieImportGetSettingsAsAtomContainerSelect    = 0x0014,
  3763.     kMovieImportSetSettingsFromAtomContainerSelect = 0x0015,
  3764.     kMovieImportSetOffsetAndLimit64Select            = 0x0016,
  3765.     kMovieImportIdleSelect                            = 0x0017,
  3766.     kMovieImportValidateDataRefSelect                = 0x0018,
  3767.     kMovieImportGetLoadStateSelect                    = 0x0019,
  3768.     kMovieImportGetMaxLoadedTimeSelect                = 0x001A,
  3769.     kMovieExportToHandleSelect                        = 0x0080,
  3770.     kMovieExportToFileSelect                        = 0x0081,
  3771.     kMovieExportGetAuxiliaryDataSelect                = 0x0083,
  3772.     kMovieExportSetProgressProcSelect                = 0x0084,
  3773.     kMovieExportSetSampleDescriptionSelect            = 0x0085,
  3774.     kMovieExportDoUserDialogSelect                    = 0x0086,
  3775.     kMovieExportGetCreatorTypeSelect                = 0x0087,
  3776.     kMovieExportToDataRefSelect                        = 0x0088,
  3777.     kMovieExportFromProceduresToDataRefSelect        = 0x0089,
  3778.     kMovieExportAddDataSourceSelect                    = 0x008A,
  3779.     kMovieExportValidateSelect                        = 0x008B,
  3780.     kMovieExportGetSettingsAsAtomContainerSelect    = 0x008C,
  3781.     kMovieExportSetSettingsFromAtomContainerSelect = 0x008D,
  3782.     kMovieExportGetFileNameExtensionSelect            = 0x008E,
  3783.     kMovieExportGetShortFileTypeStringSelect        = 0x008F,
  3784.     kMovieExportGetSourceMediaTypeSelect            = 0x0090,
  3785.     kMovieExportSetGetMoviePropertyProcSelect        = 0x0091,
  3786.     kTextExportGetDisplayDataSelect                    = 0x0100,
  3787.     kTextExportGetTimeFractionSelect                = 0x0101,
  3788.     kTextExportSetTimeFractionSelect                = 0x0102,
  3789.     kTextExportGetSettingsSelect                    = 0x0103,
  3790.     kTextExportSetSettingsSelect                    = 0x0104,
  3791.     kMIDIImportGetSettingsSelect                    = 0x0100,
  3792.     kMIDIImportSetSettingsSelect                    = 0x0101,
  3793.     kMovieExportNewGetDataAndPropertiesProcsSelect = 0x0100,
  3794.     kMovieExportDisposeGetDataAndPropertiesProcsSelect = 0x0101,
  3795.     kGraphicsImageImportSetSequenceEnabledSelect    = 0x0100,
  3796.     kGraphicsImageImportGetSequenceEnabledSelect    = 0x0101,
  3797.     kPreviewShowDataSelect                            = 0x0001,
  3798.     kPreviewMakePreviewSelect                        = 0x0002,
  3799.     kPreviewMakePreviewReferenceSelect                = 0x0003,
  3800.     kPreviewEventSelect                                = 0x0004,
  3801.     kDataCodecDecompressSelect                        = 0x0001,
  3802.     kDataCodecGetCompressBufferSizeSelect            = 0x0002,
  3803.     kDataCodecCompressSelect                        = 0x0003,
  3804.     kDataCodecBeginInterruptSafeSelect                = 0x0004,
  3805.     kDataCodecEndInterruptSafeSelect                = 0x0005,
  3806.     kDataCodecDecompressPartialSelect                = 0x0006,
  3807.     kDataCodecCompressPartialSelect                    = 0x0007,
  3808.     kDataHGetDataSelect                                = 0x0002,
  3809.     kDataHPutDataSelect                                = 0x0003,
  3810.     kDataHFlushDataSelect                            = 0x0004,
  3811.     kDataHOpenForWriteSelect                        = 0x0005,
  3812.     kDataHCloseForWriteSelect                        = 0x0006,
  3813.     kDataHOpenForReadSelect                            = 0x0008,
  3814.     kDataHCloseForReadSelect                        = 0x0009,
  3815.     kDataHSetDataRefSelect                            = 0x000A,
  3816.     kDataHGetDataRefSelect                            = 0x000B,
  3817.     kDataHCompareDataRefSelect                        = 0x000C,
  3818.     kDataHTaskSelect                                = 0x000D,
  3819.     kDataHScheduleDataSelect                        = 0x000E,
  3820.     kDataHFinishDataSelect                            = 0x000F,
  3821.     kDataHFlushCacheSelect                            = 0x0010,
  3822.     kDataHResolveDataRefSelect                        = 0x0011,
  3823.     kDataHGetFileSizeSelect                            = 0x0012,
  3824.     kDataHCanUseDataRefSelect                        = 0x0013,
  3825.     kDataHGetVolumeListSelect                        = 0x0014,
  3826.     kDataHWriteSelect                                = 0x0015,
  3827.     kDataHPreextendSelect                            = 0x0016,
  3828.     kDataHSetFileSizeSelect                            = 0x0017,
  3829.     kDataHGetFreeSpaceSelect                        = 0x0018,
  3830.     kDataHCreateFileSelect                            = 0x0019,
  3831.     kDataHGetPreferredBlockSizeSelect                = 0x001A,
  3832.     kDataHGetDeviceIndexSelect                        = 0x001B,
  3833.     kDataHIsStreamingDataHandlerSelect                = 0x001C,
  3834.     kDataHGetDataInBufferSelect                        = 0x001D,
  3835.     kDataHGetScheduleAheadTimeSelect                = 0x001E,
  3836.     kDataHSetCacheSizeLimitSelect                    = 0x001F,
  3837.     kDataHGetCacheSizeLimitSelect                    = 0x0020,
  3838.     kDataHGetMovieSelect                            = 0x0021,
  3839.     kDataHAddMovieSelect                            = 0x0022,
  3840.     kDataHUpdateMovieSelect                            = 0x0023,
  3841.     kDataHDoesBufferSelect                            = 0x0024,
  3842.     kDataHGetFileNameSelect                            = 0x0025,
  3843.     kDataHGetAvailableFileSizeSelect                = 0x0026,
  3844.     kDataHGetMacOSFileTypeSelect                    = 0x0027,
  3845.     kDataHGetMIMETypeSelect                            = 0x0028,
  3846.     kDataHSetDataRefWithAnchorSelect                = 0x0029,
  3847.     kDataHGetDataRefWithAnchorSelect                = 0x002A,
  3848.     kDataHSetMacOSFileTypeSelect                    = 0x002B,
  3849.     kDataHSetTimeBaseSelect                            = 0x002C,
  3850.     kDataHGetInfoFlagsSelect                        = 0x002D,
  3851.     kDataHScheduleData64Select                        = 0x002E,
  3852.     kDataHWrite64Select                                = 0x002F,
  3853.     kDataHGetFileSize64Select                        = 0x0030,
  3854.     kDataHPreextend64Select                            = 0x0031,
  3855.     kDataHSetFileSize64Select                        = 0x0032,
  3856.     kDataHGetFreeSpace64Select                        = 0x0033,
  3857.     kDataHAppend64Select                            = 0x0034,
  3858.     kDataHReadAsyncSelect                            = 0x0035,
  3859.     kDataHPollReadSelect                            = 0x0036,
  3860.     kDataHGetDataAvailabilitySelect                    = 0x0037,
  3861.     kDataHGetFileSizeAsyncSelect                    = 0x003A,
  3862.     kDataHGetDataRefAsTypeSelect                    = 0x003B,
  3863.     kDataHSetDataRefExtensionSelect                    = 0x003C,
  3864.     kDataHGetDataRefExtensionSelect                    = 0x003D,
  3865.     kDataHGetMovieWithFlagsSelect                    = 0x003E,
  3866.     kDataHPlaybackHintsSelect                        = 0x0103,
  3867.     kDataHPlaybackHints64Select                        = 0x010E,
  3868.     kVDGetMaxSrcRectSelect                            = 0x0001,
  3869.     kVDGetActiveSrcRectSelect                        = 0x0002,
  3870.     kVDSetDigitizerRectSelect                        = 0x0003,
  3871.     kVDGetDigitizerRectSelect                        = 0x0004,
  3872.     kVDGetVBlankRectSelect                            = 0x0005,
  3873.     kVDGetMaskPixMapSelect                            = 0x0006,
  3874.     kVDGetPlayThruDestinationSelect                    = 0x0008,
  3875.     kVDUseThisCLUTSelect                            = 0x0009,
  3876.     kVDSetInputGammaValueSelect                        = 0x000A,
  3877.     kVDGetInputGammaValueSelect                        = 0x000B,
  3878.     kVDSetBrightnessSelect                            = 0x000C,
  3879.     kVDGetBrightnessSelect                            = 0x000D,
  3880.     kVDSetContrastSelect                            = 0x000E,
  3881.     kVDSetHueSelect                                    = 0x000F,
  3882.     kVDSetSharpnessSelect                            = 0x0010,
  3883.     kVDSetSaturationSelect                            = 0x0011,
  3884.     kVDGetContrastSelect                            = 0x0012,
  3885.     kVDGetHueSelect                                    = 0x0013,
  3886.     kVDGetSharpnessSelect                            = 0x0014,
  3887.     kVDGetSaturationSelect                            = 0x0015,
  3888.     kVDGrabOneFrameSelect                            = 0x0016,
  3889.     kVDGetMaxAuxBufferSelect                        = 0x0017,
  3890.     kVDGetDigitizerInfoSelect                        = 0x0019,
  3891.     kVDGetCurrentFlagsSelect                        = 0x001A,
  3892.     kVDSetKeyColorSelect                            = 0x001B,
  3893.     kVDGetKeyColorSelect                            = 0x001C,
  3894.     kVDAddKeyColorSelect                            = 0x001D,
  3895.     kVDGetNextKeyColorSelect                        = 0x001E,
  3896.     kVDSetKeyColorRangeSelect                        = 0x001F,
  3897.     kVDGetKeyColorRangeSelect                        = 0x0020,
  3898.     kVDSetDigitizerUserInterruptSelect                = 0x0021,
  3899.     kVDSetInputColorSpaceModeSelect                    = 0x0022,
  3900.     kVDGetInputColorSpaceModeSelect                    = 0x0023,
  3901.     kVDSetClipStateSelect                            = 0x0024,
  3902.     kVDGetClipStateSelect                            = 0x0025,
  3903.     kVDSetClipRgnSelect                                = 0x0026,
  3904.     kVDClearClipRgnSelect                            = 0x0027,
  3905.     kVDGetCLUTInUseSelect                            = 0x0028,
  3906.     kVDSetPLLFilterTypeSelect                        = 0x0029,
  3907.     kVDGetPLLFilterTypeSelect                        = 0x002A,
  3908.     kVDGetMaskandValueSelect                        = 0x002B,
  3909.     kVDSetMasterBlendLevelSelect                    = 0x002C,
  3910.     kVDSetPlayThruDestinationSelect                    = 0x002D,
  3911.     kVDSetPlayThruOnOffSelect                        = 0x002E,
  3912.     kVDSetFieldPreferenceSelect                        = 0x002F,
  3913.     kVDGetFieldPreferenceSelect                        = 0x0030,
  3914.     kVDPreflightDestinationSelect                    = 0x0032,
  3915.     kVDPreflightGlobalRectSelect                    = 0x0033,
  3916.     kVDSetPlayThruGlobalRectSelect                    = 0x0034,
  3917.     kVDSetInputGammaRecordSelect                    = 0x0035,
  3918.     kVDGetInputGammaRecordSelect                    = 0x0036,
  3919.     kVDSetBlackLevelValueSelect                        = 0x0037,
  3920.     kVDGetBlackLevelValueSelect                        = 0x0038,
  3921.     kVDSetWhiteLevelValueSelect                        = 0x0039,
  3922.     kVDGetWhiteLevelValueSelect                        = 0x003A,
  3923.     kVDGetVideoDefaultsSelect                        = 0x003B,
  3924.     kVDGetNumberOfInputsSelect                        = 0x003C,
  3925.     kVDGetInputFormatSelect                            = 0x003D,
  3926.     kVDSetInputSelect                                = 0x003E,
  3927.     kVDGetInputSelect                                = 0x003F,
  3928.     kVDSetInputStandardSelect                        = 0x0040,
  3929.     kVDSetupBuffersSelect                            = 0x0041,
  3930.     kVDGrabOneFrameAsyncSelect                        = 0x0042,
  3931.     kVDDoneSelect                                    = 0x0043,
  3932.     kVDSetCompressionSelect                            = 0x0044,
  3933.     kVDCompressOneFrameAsyncSelect                    = 0x0045,
  3934.     kVDCompressDoneSelect                            = 0x0046,
  3935.     kVDReleaseCompressBufferSelect                    = 0x0047,
  3936.     kVDGetImageDescriptionSelect                    = 0x0048,
  3937.     kVDResetCompressSequenceSelect                    = 0x0049,
  3938.     kVDSetCompressionOnOffSelect                    = 0x004A,
  3939.     kVDGetCompressionTypesSelect                    = 0x004B,
  3940.     kVDSetTimeBaseSelect                            = 0x004C,
  3941.     kVDSetFrameRateSelect                            = 0x004D,
  3942.     kVDGetDataRateSelect                            = 0x004E,
  3943.     kVDGetSoundInputDriverSelect                    = 0x004F,
  3944.     kVDGetDMADepthsSelect                            = 0x0050,
  3945.     kVDGetPreferredTimeScaleSelect                    = 0x0051,
  3946.     kVDReleaseAsyncBuffersSelect                    = 0x0052,
  3947.     kVDSetDataRateSelect                            = 0x0054,
  3948.     kVDGetTimeCodeSelect                            = 0x0055,
  3949.     kVDUseSafeBuffersSelect                            = 0x0056,
  3950.     kVDGetSoundInputSourceSelect                    = 0x0057,
  3951.     kVDGetCompressionTimeSelect                        = 0x0058,
  3952.     kVDSetPreferredPacketSizeSelect                    = 0x0059,
  3953.     kVDSetPreferredImageDimensionsSelect            = 0x005A,
  3954.     kVDGetPreferredImageDimensionsSelect            = 0x005B,
  3955.     kVDGetInputNameSelect                            = 0x005C,
  3956.     kVDSetDestinationPortSelect                        = 0x005D,
  3957.     kSGInitializeSelect                                = 0x0001,
  3958.     kSGSetDataOutputSelect                            = 0x0002,
  3959.     kSGGetDataOutputSelect                            = 0x0003,
  3960.     kSGSetGWorldSelect                                = 0x0004,
  3961.     kSGGetGWorldSelect                                = 0x0005,
  3962.     kSGNewChannelSelect                                = 0x0006,
  3963.     kSGDisposeChannelSelect                            = 0x0007,
  3964.     kSGStartPreviewSelect                            = 0x0010,
  3965.     kSGStartRecordSelect                            = 0x0011,
  3966.     kSGIdleSelect                                    = 0x0012,
  3967.     kSGStopSelect                                    = 0x0013,
  3968.     kSGPauseSelect                                    = 0x0014,
  3969.     kSGPrepareSelect                                = 0x0015,
  3970.     kSGReleaseSelect                                = 0x0016,
  3971.     kSGGetMovieSelect                                = 0x0017,
  3972.     kSGSetMaximumRecordTimeSelect                    = 0x0018,
  3973.     kSGGetMaximumRecordTimeSelect                    = 0x0019,
  3974.     kSGGetStorageSpaceRemainingSelect                = 0x001A,
  3975.     kSGGetTimeRemainingSelect                        = 0x001B,
  3976.     kSGGrabPictSelect                                = 0x001C,
  3977.     kSGGetLastMovieResIDSelect                        = 0x001D,
  3978.     kSGSetFlagsSelect                                = 0x001E,
  3979.     kSGGetFlagsSelect                                = 0x001F,
  3980.     kSGSetDataProcSelect                            = 0x0020,
  3981.     kSGNewChannelFromComponentSelect                = 0x0021,
  3982.     kSGDisposeDeviceListSelect                        = 0x0022,
  3983.     kSGAppendDeviceListToMenuSelect                    = 0x0023,
  3984.     kSGSetSettingsSelect                            = 0x0024,
  3985.     kSGGetSettingsSelect                            = 0x0025,
  3986.     kSGGetIndChannelSelect                            = 0x0026,
  3987.     kSGUpdateSelect                                    = 0x0027,
  3988.     kSGGetPauseSelect                                = 0x0028,
  3989.     kSGSettingsDialogSelect                            = 0x0029,
  3990.     kSGGetAlignmentProcSelect                        = 0x002A,
  3991.     kSGSetChannelSettingsSelect                        = 0x002B,
  3992.     kSGGetChannelSettingsSelect                        = 0x002C,
  3993.     kSGGetModeSelect                                = 0x002D,
  3994.     kSGSetDataRefSelect                                = 0x002E,
  3995.     kSGGetDataRefSelect                                = 0x002F,
  3996.     kSGNewOutputSelect                                = 0x0030,
  3997.     kSGDisposeOutputSelect                            = 0x0031,
  3998.     kSGSetOutputFlagsSelect                            = 0x0032,
  3999.     kSGSetChannelOutputSelect                        = 0x0033,
  4000.     kSGGetDataOutputStorageSpaceRemainingSelect        = 0x0034,
  4001.     kSGHandleUpdateEventSelect                        = 0x0035,
  4002.     kSGSetOutputNextOutputSelect                    = 0x0036,
  4003.     kSGGetOutputNextOutputSelect                    = 0x0037,
  4004.     kSGSetOutputMaximumOffsetSelect                    = 0x0038,
  4005.     kSGGetOutputMaximumOffsetSelect                    = 0x0039,
  4006.     kSGGetOutputDataReferenceSelect                    = 0x003A,
  4007.     kSGWriteExtendedMovieDataSelect                    = 0x003B,
  4008.     kSGGetStorageSpaceRemaining64Select                = 0x003C,
  4009.     kSGGetDataOutputStorageSpaceRemaining64Select    = 0x003D,
  4010.     kSGWriteMovieDataSelect                            = 0x0100,
  4011.     kSGAddFrameReferenceSelect                        = 0x0101,
  4012.     kSGGetNextFrameReferenceSelect                    = 0x0102,
  4013.     kSGGetTimeBaseSelect                            = 0x0103,
  4014.     kSGSortDeviceListSelect                            = 0x0104,
  4015.     kSGAddMovieDataSelect                            = 0x0105,
  4016.     kSGChangedSourceSelect                            = 0x0106,
  4017.     kSGAddExtendedFrameReferenceSelect                = 0x0107,
  4018.     kSGGetNextExtendedFrameReferenceSelect            = 0x0108,
  4019.     kSGAddExtendedMovieDataSelect                    = 0x0109,
  4020.     kSGAddOutputDataRefToMediaSelect                = 0x010A,
  4021.     kSGSetChannelUsageSelect                        = 0x0080,
  4022.     kSGGetChannelUsageSelect                        = 0x0081,
  4023.     kSGSetChannelBoundsSelect                        = 0x0082,
  4024.     kSGGetChannelBoundsSelect                        = 0x0083,
  4025.     kSGSetChannelVolumeSelect                        = 0x0084,
  4026.     kSGGetChannelVolumeSelect                        = 0x0085,
  4027.     kSGGetChannelInfoSelect                            = 0x0086,
  4028.     kSGSetChannelPlayFlagsSelect                    = 0x0087,
  4029.     kSGGetChannelPlayFlagsSelect                    = 0x0088,
  4030.     kSGSetChannelMaxFramesSelect                    = 0x0089,
  4031.     kSGGetChannelMaxFramesSelect                    = 0x008A,
  4032.     kSGSetChannelRefConSelect                        = 0x008B,
  4033.     kSGSetChannelClipSelect                            = 0x008C,
  4034.     kSGGetChannelClipSelect                            = 0x008D,
  4035.     kSGGetChannelSampleDescriptionSelect            = 0x008E,
  4036.     kSGGetChannelDeviceListSelect                    = 0x008F,
  4037.     kSGSetChannelDeviceSelect                        = 0x0090,
  4038.     kSGSetChannelMatrixSelect                        = 0x0091,
  4039.     kSGGetChannelMatrixSelect                        = 0x0092,
  4040.     kSGGetChannelTimeScaleSelect                    = 0x0093,
  4041.     kSGChannelPutPictureSelect                        = 0x0094,
  4042.     kSGChannelSetRequestedDataRateSelect            = 0x0095,
  4043.     kSGChannelGetRequestedDataRateSelect            = 0x0096,
  4044.     kSGChannelSetDataSourceNameSelect                = 0x0097,
  4045.     kSGChannelGetDataSourceNameSelect                = 0x0098,
  4046.     kSGChannelSetCodecSettingsSelect                = 0x0099,
  4047.     kSGChannelGetCodecSettingsSelect                = 0x009A,
  4048.     kSGGetChannelTimeBaseSelect                        = 0x009B,
  4049.     kSGInitChannelSelect                            = 0x0180,
  4050.     kSGWriteSamplesSelect                            = 0x0181,
  4051.     kSGGetDataRateSelect                            = 0x0182,
  4052.     kSGAlignChannelRectSelect                        = 0x0183,
  4053.     kSGPanelGetDitlSelect                            = 0x0200,
  4054.     kSGPanelGetTitleSelect                            = 0x0201,
  4055.     kSGPanelCanRunSelect                            = 0x0202,
  4056.     kSGPanelInstallSelect                            = 0x0203,
  4057.     kSGPanelEventSelect                                = 0x0204,
  4058.     kSGPanelItemSelect                                = 0x0205,
  4059.     kSGPanelRemoveSelect                            = 0x0206,
  4060.     kSGPanelSetGrabberSelect                        = 0x0207,
  4061.     kSGPanelSetResFileSelect                        = 0x0208,
  4062.     kSGPanelGetSettingsSelect                        = 0x0209,
  4063.     kSGPanelSetSettingsSelect                        = 0x020A,
  4064.     kSGPanelValidateInputSelect                        = 0x020B,
  4065.     kSGPanelSetEventFilterSelect                    = 0x020C,
  4066.     kSGGetSrcVideoBoundsSelect                        = 0x0100,
  4067.     kSGSetVideoRectSelect                            = 0x0101,
  4068.     kSGGetVideoRectSelect                            = 0x0102,
  4069.     kSGGetVideoCompressorTypeSelect                    = 0x0103,
  4070.     kSGSetVideoCompressorTypeSelect                    = 0x0104,
  4071.     kSGSetVideoCompressorSelect                        = 0x0105,
  4072.     kSGGetVideoCompressorSelect                        = 0x0106,
  4073.     kSGGetVideoDigitizerComponentSelect                = 0x0107,
  4074.     kSGSetVideoDigitizerComponentSelect                = 0x0108,
  4075.     kSGVideoDigitizerChangedSelect                    = 0x0109,
  4076.     kSGSetVideoBottlenecksSelect                    = 0x010A,
  4077.     kSGGetVideoBottlenecksSelect                    = 0x010B,
  4078.     kSGGrabFrameSelect                                = 0x010C,
  4079.     kSGGrabFrameCompleteSelect                        = 0x010D,
  4080.     kSGDisplayFrameSelect                            = 0x010E,
  4081.     kSGCompressFrameSelect                            = 0x010F,
  4082.     kSGCompressFrameCompleteSelect                    = 0x0110,
  4083.     kSGAddFrameSelect                                = 0x0111,
  4084.     kSGTransferFrameForCompressSelect                = 0x0112,
  4085.     kSGSetCompressBufferSelect                        = 0x0113,
  4086.     kSGGetCompressBufferSelect                        = 0x0114,
  4087.     kSGGetBufferInfoSelect                            = 0x0115,
  4088.     kSGSetUseScreenBufferSelect                        = 0x0116,
  4089.     kSGGetUseScreenBufferSelect                        = 0x0117,
  4090.     kSGGrabCompressCompleteSelect                    = 0x0118,
  4091.     kSGDisplayCompressSelect                        = 0x0119,
  4092.     kSGSetFrameRateSelect                            = 0x011A,
  4093.     kSGGetFrameRateSelect                            = 0x011B,
  4094.     kSGSetPreferredPacketSizeSelect                    = 0x0121,
  4095.     kSGGetPreferredPacketSizeSelect                    = 0x0122,
  4096.     kSGSetUserVideoCompressorListSelect                = 0x0123,
  4097.     kSGGetUserVideoCompressorListSelect                = 0x0124,
  4098.     kSGSetSoundInputDriverSelect                    = 0x0100,
  4099.     kSGGetSoundInputDriverSelect                    = 0x0101,
  4100.     kSGSoundInputDriverChangedSelect                = 0x0102,
  4101.     kSGSetSoundRecordChunkSizeSelect                = 0x0103,
  4102.     kSGGetSoundRecordChunkSizeSelect                = 0x0104,
  4103.     kSGSetSoundInputRateSelect                        = 0x0105,
  4104.     kSGGetSoundInputRateSelect                        = 0x0106,
  4105.     kSGSetSoundInputParametersSelect                = 0x0107,
  4106.     kSGGetSoundInputParametersSelect                = 0x0108,
  4107.     kSGSetAdditionalSoundRatesSelect                = 0x0109,
  4108.     kSGGetAdditionalSoundRatesSelect                = 0x010A,
  4109.     kSGSetFontNameSelect                            = 0x0100,
  4110.     kSGSetFontSizeSelect                            = 0x0101,
  4111.     kSGSetTextForeColorSelect                        = 0x0102,
  4112.     kSGSetTextBackColorSelect                        = 0x0103,
  4113.     kSGSetJustificationSelect                        = 0x0104,
  4114.     kSGGetTextReturnToSpaceValueSelect                = 0x0105,
  4115.     kSGSetTextReturnToSpaceValueSelect                = 0x0106,
  4116.     kSGGetInstrumentSelect                            = 0x0100,
  4117.     kSGSetInstrumentSelect                            = 0x0101,
  4118.     kQTVideoOutputGetDisplayModeListSelect            = 0x0001,
  4119.     kQTVideoOutputGetCurrentClientNameSelect        = 0x0002,
  4120.     kQTVideoOutputSetClientNameSelect                = 0x0003,
  4121.     kQTVideoOutputGetClientNameSelect                = 0x0004,
  4122.     kQTVideoOutputBeginSelect                        = 0x0005,
  4123.     kQTVideoOutputEndSelect                            = 0x0006,
  4124.     kQTVideoOutputSetDisplayModeSelect                = 0x0007,
  4125.     kQTVideoOutputGetDisplayModeSelect                = 0x0008,
  4126.     kQTVideoOutputCustomConfigureDisplaySelect        = 0x0009,
  4127.     kQTVideoOutputSaveStateSelect                    = 0x000A,
  4128.     kQTVideoOutputRestoreStateSelect                = 0x000B,
  4129.     kQTVideoOutputGetGWorldSelect                    = 0x000C,
  4130.     kQTVideoOutputGetGWorldParametersSelect            = 0x000D,
  4131.     kQTVideoOutputGetIndSoundOutputSelect            = 0x000E,
  4132.     kQTVideoOutputGetClockSelect                    = 0x000F,
  4133.     kQTVideoOutputSetEchoPortSelect                    = 0x0010
  4134. };
  4135.  
  4136. #if PRAGMA_STRUCT_ALIGN
  4137.     #pragma options align=reset
  4138. #elif PRAGMA_STRUCT_PACKPUSH
  4139.     #pragma pack(pop)
  4140. #elif PRAGMA_STRUCT_PACK
  4141.     #pragma pack()
  4142. #endif
  4143.  
  4144. #ifdef PRAGMA_IMPORT_OFF
  4145. #pragma import off
  4146. #elif PRAGMA_IMPORT
  4147. #pragma import reset
  4148. #endif
  4149.  
  4150. #ifdef __cplusplus
  4151. }
  4152. #endif
  4153.  
  4154. #endif /* __QUICKTIMECOMPONENTS__ */
  4155.  
  4156.